我已經根據文檔設置了JQuery UI自動完成功能,它適用於任何帶有class =「tag-item」輸入的頁面。然而,用戶可以通過JS將輸入添加到dom中,所以我需要一種方法將自動完成綁定到使用委託創建的新動態輸入。我不知道如何設置這個,任何想法將不勝感激。jquery ui自動完成與委託
謝謝
我已經根據文檔設置了JQuery UI自動完成功能,它適用於任何帶有class =「tag-item」輸入的頁面。然而,用戶可以通過JS將輸入添加到dom中,所以我需要一種方法將自動完成綁定到使用委託創建的新動態輸入。我不知道如何設置這個,任何想法將不勝感激。jquery ui自動完成與委託
謝謝
您可以使用'focusin'事件進行委派來設置您的輸入字段。
我曾在此一展身手,可就是不能使它工作,這是我的嘗試:
對於它的價值,這就是我最終使用:
$('#some-container').delegate('input.to-autocomplete', 'focus', function(e) {
$(this).autocomplete({
source: autocomplete_url
/* etc, etc */
});
});
$('#some-container').delegate('input.to-autocomplete', 'blur', function(e) {
var target = $(this);
if (target.hasClass('ui-autocomplete-input')) {
target.autocomplete('destroy');
}
});
我的希望是,它會減輕負擔上的瀏覽器,因爲我自動填充(可能)幾百個元素然後自動完成結果,否則開始疊加。
對我下面的工作:
$('#autocomplete').on('focusin', 'input', function(){
$(this).autocomplete({
});
});
在我看來這個解決方案的氣味,但我最終只是包裹在一個函數的代碼和調用功能齊全的功能,新的輸入注入後DOM。據我可以告訴我將不得不改變自動完成的代碼,使其與委託工作。我100%肯定有更好的方法,所以這是一個評論,而不是一個明顯的答案。 – Paul 2010-04-16 18:11:00