62 / 29 / 5
Регистрация: 20.11.2009
Сообщений: 193

trigger() не срабатывает до click()

02.02.2013, 17:52. Показов 5905. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть подобие табов:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<ul id="tabs-menu">
  <li>
    <a class="tabs active">Ccылка</a>
  </li>
   <li>
    <a class="tabs">Ccылка2</a>
  </li>
</ul>
<div class="content">
  <div id="content-1">Content</div>
  <div id="content-2">Content2</div>
</div>
Задача - при запуске страницы эмулировать нажатие на ссылку с классом active (что бы при запуске страницы появлялся предопределенный блок).
У меня так реализовано так (не работает):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function(){
 
  $("div.content div").hide();
 
  $("#tabs-menu a.active").trigger("click"); //!!!
 
  $("("#tabs-menu a.tabs").click(function(){
     
     $("a.active").removeClass("active");
 
     $(this).addClass("active");
     
     ///дальше вызов show() для показа div
 
  });
});
Что интересно, если делегировать вызов из другого меню (сделал так что бы не дублировать код для второго меню), все работает.

Для второго меню естественно была click функция, откуда и вызывался trigger для первого меню.
Может есть еще способ, как заставить срабатывать click?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2013, 17:52
Ответы с готовыми решениями:

Click не срабатывает
Вод сам код. Почему он не срабатывает и как это можно поправить? $('.bb_widget_basket').click(function(){ for (var i in...

Не срабатывает .click()
Не срабатывает код, помогите-спасите &lt;input type=&quot;button&quot; id=&quot;my_button&quot; value=&quot;Кнопка&quot;&gt; $(&quot;#my_button&quot;).click(function() {...

Не срабатывает click
Привет всем, появилась такая проблема: по клику на элементе появляется блок с подсказкой, блок с подсказкой находится в этом же элементе,...

6
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
02.02.2013, 18:02
А что там в 7 строке какие-то лишние (".
JavaScript
1
$("("#tabs-menu a.tabs").click(function(){
0
62 / 29 / 5
Регистрация: 20.11.2009
Сообщений: 193
02.02.2013, 20:12  [ТС]
Soldado, Извиняюсь, это опечатка, в рабочем коде этого нет. От руки код набирал тут. Не обращайте внимание.
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
02.02.2013, 20:44
Переставьте местами - снaчала click, затем trigger
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
$(document).ready(function(){
 
  $("div.content div").hide();
 
  
 
  $("#tabs-menu a.tabs").click(function(){
     
     $("a.active").removeClass("active");
 
     $(this).addClass("active");
     
    ///дальше вызов show() для показа div
 
  });
  
  $("#tabs-menu a.active").trigger("click"); //!!!
});/*end  ready*/
 </script>

Демо-страница на которой вместо показа блока, с целью проверки я записал
JavaScript
1
alert(1);
Добавлено через 5 минут
Можно другим путём пойти, спрятать только второй блок id="content-2" в стилях и не нужно будет
ни
JavaScript
1
$("div.content div").hide();
ни
JavaScript
1
$("#tabs-menu a.active").trigger("click");
Блок сразу не будет виден при загрузке.
0
62 / 29 / 5
Регистрация: 20.11.2009
Сообщений: 193
02.02.2013, 21:01  [ТС]
Спасибо, после перемещения вниз - заработало. Хотя так и не вполне ясно почему)
Насчет того, чтобы спрятать вторую вкладку - на деле вкладок будет больше, поэтому как вариант - делать выборку всех <a> не имеющих класс active. А этого я пока не умею. ((
0
53 / 53 / 8
Регистрация: 20.11.2012
Сообщений: 114
02.02.2013, 21:20
Цитата Сообщение от hunty Посмотреть сообщение
Спасибо, после перемещения вниз - заработало. Хотя так и не вполне ясно почему)
Насчет того, чтобы спрятать вторую вкладку - на деле вкладок будет больше, поэтому как вариант - делать выборку всех <a> не имеющих класс active. А этого я пока не умею. ((
JavaScript
1
$('a').filter('.active')
Метод выбираeт все элементы "а" кроме содержащих класс "active".
1
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
02.02.2013, 21:38
Я себе взял за правило (может быть со мной многие и не согласятся) не использовать гиперссылки <a> если не собираюсь переходить.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul id="tabs-menu">
  <li class="tabs active">Ccылка1</li>
  <li class="tabs">Ccылка2</li>
  <li class="tabs">Ccылка3</li> 
  <li class="tabs">Ccылка4</li> 
</ul>
 
 
<div class="content">
  <div id="content-1">1.Content1</div>
  <div id="content-2">2.Content2</div>
  <div id="content-2">3.Content3</div>
  <div id="content-2">4.Content4</div>
</div>

Повторюсь - можно обойтись без trigger, а главное без
JavaScript
1
$("div.content div").hide();
Зачем Вам показывать все блоки, а затем прятать их после загрузки, если можно всё, что нужно спрятать в стилях, а показать первый блок.

CSS
1
2
3
4
5
6
7
8
.content div{
display: none;
}
 
#content-1
{
    display:block;
}
Тогда скрипт (в нём мой вариант показа блока) будет поменьше:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
$(document).ready(function(){
 
$(".tabs").click(function(){
    $(".tabs").removeClass("active");
    $(this).addClass("active");
     
/* ниже код - показ  нужного блока:  
получаем  порядковый номер кликнутой ссылки
прячем все  div
и показываем div у которого тот же номер - number 
*/
var number = $('.tabs').index(this);
$(".content div").hide();   
$(".content div").eq(number).show();
 
 });
 
 
});/*end  ready*/
 </script>
Это конечно если у Вас где-то ещё нет таких классов.

Всё вместе можно увидеть на демо-странице.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2013, 21:38
Помогаю со студенческими работами здесь

Click по элементу не срабатывает
Скинул на фидле примерчик, почему-то не могу отловить клик по .expand классу, если добавляю ещё индефикатор таблицы перед то работает но в...

Не срабатывает событие click
&lt;div id=&quot;panel&quot;&gt; &lt;div id=&quot;panel-content&quot; class=&quot;info-map-panel info-map-panel-visible&quot;&gt; &lt;/div&gt; &lt;/div&gt; Есть блок, который...

.hover срабатывает а .click нет
не знаю в чем именно проблема. ну нужно именно .click но функция не срабатывает а .hover работает нормально в чем проблема ...

click не срабатывает на ajax данные
есть div&lt;div id=&quot;wrapper&quot;&gt;&lt;/div&gt; делаю ajax запрос$(document).ready(function(){ $('#wrapper').load('load.php'); ...

Функция click() не срабатывает на тегах DIV
Доброго времени суток уважаемые форумчане. Есть у меня одно хобби в котором требуется работа поочередно с сотнями сим карт. Все личные и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru