Триггер jQuery не работает должным образом при прямом нацеливании на элемент - PullRequest
0 голосов
/ 18 октября 2011

Учитывая этот HTML

<div id="section-name">
    <div id="item">
    ...
    </div>
</div>

А это jquery

$("#section-name div").click(function(){
    // do stuff
});
$("#item").trigger("click");

Я бы ожидал, что все, что у меня есть, // выполнит что-то для выполнения. Однако это не так. Если я нажимаю непосредственно на элемент, я получаю ожидаемое поведение.

Ничто из того, что я нашел в документации по триггеру, не помогает мне понять, является ли это ожидаемым поведением.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 18 октября 2011

У вас нет идентификатора #section в вашем HTML, у вас есть #section-name.Для выполнения // do stuff измените свой HTML-код на следующий:

<div id="section">
    <div id="item">
    ...
    </div>
</div>

Или с HTML5 выполните следующее:

<section>
    <div id="item">
    ...
    </div>
</section>

И затем измените прослушиватель событий на следующее (уведомлениеотсутствие #):

$("section div").click(function(){
    // do stuff
});
0 голосов
/ 18 октября 2011

Извините, моя ошибка.Похоже, в HTML были дубликаты идентификаторов.Примечание для себя ... всегда проверяйте перед публикацией!

Может быть, это поможет кому-то еще с аналогичным отсутствием дисциплины.:)

0 голосов
/ 18 октября 2011

Ваш JQuery Selector неправильный;должно быть:

$("#section-name div").click(function(){
    // do stuff
});
$("#item").trigger("click");

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: Спасибо vzwick за это скрипка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...