автозаполнение и жить? - PullRequest
0 голосов
/ 31 января 2011

У меня есть следующий скрипт, который работает до тех пор, пока #txtAllowSearch является плоским html:

$(document).ready(function(){
    $("#txtAllowSearch").autocomplete({
        source: "test_array.aspx",
        delay: 0,
        select: function (event, ui) {
            $("#txtAllowSearch").val(ui.item.value); // display the selected text
            $("#txtAllowSearchID").val(ui.item.id); // save selected id to hidden input
        }
    });
});

Это перестает работать, как только #txtAllowSearch динамически создается javascript / jquery.

Нужно ли использовать jqueries live, чтобы заставить это работать?

Ответы [ 2 ]

3 голосов
/ 31 января 2011

jQuerys .live() help // .delegate() help только поймать события . В вашем случае (применение метода плагина к элементу) вам нужно будет вызывать .autocomplete() каждый раз после вставки элемента в DOM или использовать превосходную .livequery help плагин.

2 голосов
/ 08 ноября 2012

jQuery.live устарела.

Для достижения этой цели вы должны использовать $ (document) .on.

$(document).ready(function(){
    $(document).on("focus.autocomplete", "#txtAllowSearch", function() {
        source: "test_array.aspx",
        delay: 0,
        select: function (event, ui) {
            $("#txtAllowSearch").val(ui.item.value); // display the selected text
            $("#txtAllowSearchID").val(ui.item.id); // save selected id to hidden input
        }
    });
});

Для получения дополнительной информации см. Документацию по jQuery API: http://api.jquery.com/on/

...