Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
62 / 29 / 5
Регистрация: 20.11.2009
Сообщений: 193

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

02.02.2013, 17:52. Показов 5868. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru