0

私は 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);

まだ解決策が見つかりません。

4

1 に答える 1

0

プラグインには、実際には<li>置き換えられる要素のキャッシュがあるため、次のように、以前のハンドラーを「バインド解除」して再度バインドする必要があります。

$('#list').load('/search/accountname', function() {
  $('#search').unbind('keyup').liveUpdate('#list');
});

プラグインはハンドラーに装備されているため、バインド.keyup()を解除して新しいものを追加するだけです。本当にクリーンアップするには、 を追加できますが、 に他の送信ハンドラーがある.parents('form').unbind('submit')場合、それは悪い考えです:)<form>

于 2010-08-23T14:08:36.787 に答える