jQuery livesearchが非同期にロードするときは機能しません
-
30-09-2019 - |
質問
私にはLivesearchがあり、このような順序付けられていないリストを使用しています。
<input id="search"/>
<ul id="list>
<li>1</li>
<li>2</li>
</ul>
今、私はこれらのアイテムにlivesearch関数を置いています:
$('#search').liveUpdate('#list').focus();
最初は静的リストでテストしていましたが、魅力のように機能しました。今、私はそれを以下のステートメントで非同期ロードしようとしています。
//$('#list').load('/search/organization');
//$('#list').load('/search/person');
//$('#list').load('/search/debitor');
$('#list').load('/search/accountname');
データは通常のように読み込まれますが、今では検索が機能しなくなりました。私はAjaxを使用することに慣れていないので、これはよくある問題でしょうか?
前もって感謝します、
編集:
このコードを追加するか、他の場所で警告すると、1を返します。ULには常に1つの要素しかありません。
$('#list').load('/search/organization');
var test = jQuery('#list');
alert(test.length);
まだソルトは見つかりませんでした。
解決
プラグインには実際にキャッシュがあります <li>
交換されている要素なので、以前のハンドラーを「バインド」して再び再結合する必要があります。
$('#list').load('/search/accountname', function() {
$('#search').unbind('keyup').liveUpdate('#list');
});
以来 プラグイン に装備されています .keyup()
ハンドラー、あなたはそれを解き放ち、新しいものを追加するだけです。に 本当 クリーンアップ、追加できます .parents('form').unbind('submit')
, 、しかし、あなたが持っているなら 他の にハンドラーを送信します <form>
, 、それは悪い考えになるでしょう:)
所属していません StackOverflow