Не удается прослушать события в меню автозаполнения пользовательского интерфейса jQuery - PullRequest
2 голосов
/ 07 декабря 2011

Проблема:

Я пытался прослушивать несколько различных типов событий в меню автозаполнения пользовательского интерфейса jQuery, например .on('click') и .on('submit').

Ни одно из событий не поймано. В случае события click событие вообще не регистрируется. А в случае submit я пытаюсь запретить дефолт в форме id, но безрезультатно.

По сути, мой вариант использования этого заключается в том, что я использую автозаполнение, чтобы показать возможные варианты для input, и добавляю дополнительный li в меню события open с кнопкой / формой для добавления другой вариант.

Могу ли я просто не слушать события по какой-то причине в автозаполнении, кроме указанных событий, таких как select?

jsFiddle

Вот короткая демонстрация jsFiddle .

1 Ответ

1 голос
/ 07 декабря 2011

Вам нужно будет делегировать событие click, поскольку элемент кнопки добавляется динамически и отсутствует, когда вы связываете его с привязкой события .on ().

$('body').delegate('#add-from-search','click', function() {
    console.log('clicked');
});

Посмотрите на эту скрипку

Из Jquery вкл. () Документы

Обработчики событий связаны только с выбранными в данный момент элементами;они должны существовать на странице в тот момент, когда ваш код вызывает .on ().Чтобы убедиться, что элементы присутствуют и могут быть выбраны, выполните привязку событий внутри обработчика готовых документов для элементов, которые находятся в разметке HTML на странице.Если новый HTML внедряется в страницу, выберите элементы и прикрепите обработчики событий после того, как новый HTML будет помещен на страницу.Или используйте делегированные события для присоединения обработчика событий, как описано далее.

...