2012-10-18 23 views
5

Mam 2 listy, które można sortować (# sortable1 i # sortable2), a następnie wykonałem 2 click() funkcje do obsługi każdego zdarzenia typu itemable item ($("#sortable1 li").click(function(){}) i $("#sortable2 li").click(function(){})).jQuery UI sortowalne zdarzenie click

Przesuwam 1 element z # sortable1 (dla przykładu: Sort1 Item 2) do listy # sortable2. Problem występuje, gdy element został przeniesiony do # sortable2 i próbuję go kliknąć, wyzwalana mouseevent jest $("#sortable1 li").click(function(){}) nie $("#sortable2 li").click(function(){}).

Wszelkie sugestie, więc jeśli przeniesię element z sortable1 do sortable2 i kliknij ten element, element wyzwalacza $("#sortable2 li").click(function(){})?

DEMO: http://jsfiddle.net/yosafatade/zX3pX/12/

Odpowiedz

3

trzeba użyć on() zobaczyć aktualizację http://jsfiddle.net/zX3pX/13/

+0

Super niesamowite. tysiąc dzięki tobie. – yosafatade

+2

live() jest przestarzałe - użyj .on() – oshikryu

+0

Jeśli posiadasz klikalne elementy w Sortable, dodaj również opcje 'helper: 'clone',' w Opcjach Sortowania, aby zapobiec wybuchowi zdarzenia kliknięcia podczas przeciągania/sortowania. http://stackoverflow.com/questions/947195/jquery-ui-sortable-how-can-i-cancel-the-click-event-on-an-item-thats-dragged –

0

I pewnie dodać klasę do każdej li pozycji co stół jest w Np

<li class='sort1'></li> 
.

Następnie po sprawdzeniu .click na $(".sort1") i po przeniesieniu elementu uruchom

$(this).removeClass("sort1"); 
$(this).addClass("sort2"); 
+0

Próbowałem już wcześniej tak, ale problem nadal występuje. odpowiedź @DavidMichaelHarrison i CrimsonChin jest właściwą odpowiedzią. – yosafatade

2

Użyłbym .on jako .delegate został zastąpiony. W ten sposób dołączasz wydarzenie do listy, a nie do elementu listy.

Użyj tego:

$("#sortable1").on("click", "li", function(){ 
     $("#testClickSort1").html($(this).html()); 
}); 

$("#sortable2").on("click", "li", function(){ 
     $("#testClickSort2").html($(this).html()); 
}); 

skrzypce: http://jsfiddle.net/qkCcS/

Powiązane problemy