我使用JQuery的.html()使用此代碼在我的網頁上的div交換:JQuery的使用HTML()後重新綁定
$('#item1').html($('#item8').html());
$('#item8').html('<p>sdsdsd</p>');
我發現這個偉大的工程,但是jQuery方法停止工作。所以div#item1將有一個切換,例如,它會正常工作,直到我使用.html()。
有沒有解決方案重新綁定JQuery來解決這個問題?
謝謝!
我使用JQuery的.html()使用此代碼在我的網頁上的div交換:JQuery的使用HTML()後重新綁定
$('#item1').html($('#item8').html());
$('#item8').html('<p>sdsdsd</p>');
我發現這個偉大的工程,但是jQuery方法停止工作。所以div#item1將有一個切換,例如,它會正常工作,直到我使用.html()。
有沒有解決方案重新綁定JQuery來解決這個問題?
謝謝!
使用.live
,也將努力
不要使用live,而應使用delegate:http://stackoverflow.com/questions/4579117/jquery-live-vs-delegate – Polaris878
使用.delegate
Docs見Jquery live() vs delegate(),爲什麼你應該使用delegate
超過live
。
$('itemParent').delegate('#item8', 'click', function(){});
非但沒有元素的HTML,然後有瀏覽器的重新分析它變成另一種元素,你可以只從一個容器移動節點到另一個:
var $item8 = $('#item8');
$('#item1').empty().append($item8.contents());
$item8.html('<p>sdsdsd</p>');
這將使任何當前綁定在已經創建的元素上,因此不需要使用live()
或重新綁定這些事件。
live()
,或者說,delegate()
仍然是一個體面的替代解決方案,但是。
+1更好的解決問題的整體解決方案 – Loktar
事件處理程序到底在哪裏?你爲什麼不使用DOM操作? '$( '#物品1')空()追加($( '#item8')兒童());'?只要你不需要,不要使用'.html()'。 –
@Felix Kling:我只是想提出一個答案,儘管你可能需要'content()'而不是'children()'。 –
http://jsfiddle.net/X63tG/這似乎工作得很好....你是說你已經綁定到你的divs中的元素,或者divs本身? divs中的元素:使用'live'。 Divs自己?應該工作正常。 –