2009-08-28 1 views
0

Ich habe diesen Code für einige ElementeProblem mit jquery UI droppable und livequery!

var $ tab_items = $ ("ul: erst li", $ Tabs) fallen gelassen werden .droppable {Toleranz: 'touch', ....

und Es funktioniert ok, aber das Problem ist, wenn ich einen anderen Button mit Ajax oder Javascript lade, funktioniert nicht, weil das neue Element für dieses Event nicht bindend ist.

In anderen ähnlichen Situation fand ich eine Lösung mit LiveQuery (Event Delegation), aber hier ist es unmöglich, weil ich keine Funktion anhängen möchte, ich möchte das gleiche, dass auf der ersten Zeile Code.

Jede Lösung besser als Dropabble nach jeder neuen Objektladung?

+0

können Sie das ein wenig erläutern? – David

+0

Dies ist meine Funktion: auf Abfall innerhalb bewegt einige Inhalte: var $ tab_items = $ ("ul: erst li", $ Tabs) .droppable ({ \t \t \t Toleranz: 'touch', \t \t \t drop: Funktion (ev, ui) { \t \t \t \t var $ item = $ (this); \t \t \t \t var $ list = $ ($ item.find ('a') attr ('href').). find ('. connectedSortable'); \t \t \t \t ui.draggable.hide (300, function() { \t \t \t \t \t $ tabs.tabs ('wählen', $ tab_items.index ($ item)); \t \t \t \t \t $ (dies) .appendTo ($ list) .show ('langsam'); \t \t \t \t}); \t \t} Dies ist eine große Funktion zu kopieren oder mehrmals auszuführen (wie die zweite Antwort gerade unten) Ich brauche das, wenn ich ein anderes div oder button hinzufüge, hat es das gleiche "dropping" Verhalten –

Antwort

0

Fügen Sie einfach den Handler in Ihrem Ajax-Erfolgsrückruf hinzu.

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