繼後是一段jQuery代碼被我逼瘋使用jQuery混淆()行爲
var count = 0;
$('#some-element-id').click(function(){
var currentElement = '#new-div-id-'+count;
$(currentElement).after($('<div id="new-div-id-'+(++count)+'">Hello World!<span class="delete_me">x</span></div>'));
});
$(".delete_me").click(function() {
alert('Deleting!');
});
現在,因此,當我元素上點擊ID爲some-element-id
一個新的div被插入,我看到了x
字符。但點擊x
不會做任何事情。沒有錯誤。根據http://api.jquery.com/after我可以插入元素這種方式工作正常。我可以使用Firebug在DOM樹中使用新元素。現在爲什麼當我點擊span
時沒有事件發生?由於某些未知的原因,我不得不使用jQuery 1.3.2,但這應該不成問題。
更新1 我明白,我想一個綁定甚至不會在DOM中存在的元素。但請注意,即使不是已解僱,該事件將在元素嵌入DOM後觸發。我用下面的代碼,甚至不工作
$("span.delete_me").live('click',function() {
alert('Deleting!');
});
有在控制檯上沒有錯誤。 更新2 下面是實際的渲染代碼http://jsfiddle.net/8sjcZ/
的問題是,在'。當您想要將事件綁定到DOM時,delete_me'元素不存在於DOM中。使用'live()'從jquery – rabudde
一個簡單的解決方案也可以把'$(「。delete_me」)。click()'as'$('#new-div-id - '+ count +'.delete_me') .click()'裏面'$('#some-element-id')。click()'函數 – rabudde
@rabudde,'live()',不起作用,請看更新 – Kumar