0

只要#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 动态创建,这将停止工作。

我是否需要实时使用 jquery 才能使其正常工作?

4

2 回答 2

3

jQuerys .live()help //仅.delegate()帮助捕获事件。在您的情况下(在元素上应用插件方法),您需要.autocomplete()在元素插入 DOM 后每次调用,或使用出色的.livequery帮助插件。

于 2011-01-31T09:33:10.610 回答
2

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/

于 2012-11-08T00:41:33.430 回答