2009-08-28 24 views
0

私はいくつかの要素が削除されるため、このコードを有するjquery UIのdroppableとlivequeryを使用すると問題が発生します。

VAR $ tab_items = $( "UL:最初のLi"、$タブ).droppable {公差: 'タッチ'、....

とそれはうまく動作しますが、問題は、Ajaxまたはjavascriptによって別のボタンをロードするときです。 は新しい要素がこのイベントにバインドされていないため動作しません。

livequery(イベントデリゲーション)を使用して解決策を見つけましたが、ここでは関数をアタッチしたくないため、ここでは不可能です。同じコードを最初の行のコードに添付します。

新しいオブジェクトをロードするたびにドロップアラブルを作成するよりも優れたソリューションですか?

+0

? – David

+0

これは私の関数である:移動内側の低下に一部のコンテンツ: VAR $ tab_items = $( "UL:最初のリー"、$タブ).droppable({ \t \t \t寛容: 'タッチ'、 \t \t \tドロップ:関数(EV、UI){ \t \t \t \t変数$アイテム= $(この); \t \t \t \t変数$一覧= $($ item.find( 'A')、ATTR( 'のhref')。)。 find( '。connectedSortable'); \t \t \t \t ui.draggable.hide(300、function(){ \t \t \t \t \t $ tabs.tabs( 'select'、$ tab_items.index($ item)); \t \t \t \t \t $(this).appendTo($ list).show( 'slow'); \t \t \t \t}); \t \t \t} これは、別のdivやボタンを追加したときに同じように「落ちる」振る舞いをする必要があります。 –

答えて

0

あなたのajax successコールバックにハンドラを追加するだけです。

$.ajax({ 
    url: ... 
    ... 
    success: function(data) { 
     $('<li>....</li>').droppable({ tolerance: 'touch', ... }) 
          .appendTo('#tabs ul:first'); 
     ... 
    } 
    ... 
}); 
0

これは間違っている予感かもしれないが、あなたが見たいかもしれません:あなたは、そのビットを明確にすることができます http://docs.jquery.com/UI/Sortable

関連する問題