这是一段简单的代码:
HTML:
<div id="close">Click me</div>
JS代码:
$("#close").click(function(){
alert("1");
$(this).attr('id','expand');
});
$("#expand").live('click', function(){
alert("2");
$(this).attr('id','close');
});
问题:当我点击“关闭”时,它也会自动调用 live()。在 jsfiddle 中看到这个:http: //jsfiddle.net/uFJkg/
是因为我将同一个元素的 id 从“关闭”更改为“扩展”吗?我该如何解决这个问题?
我试过了:
$("#expand").die().live('click', function()
但它没有用。我尝试了 event.stopPropagation() 但这也没有帮助。我尝试使用 id 为“expand”的单独 div 并将其隐藏在 document.ready 上,但由于某种原因它也无法正常工作。
然后我已经尝试过,因为我读到 live() 在 jQuery 1.7+ 中已被弃用:
$("#expand").on('click', function(){
这也行不通。
有什么想法吗?我认为一双新的眼睛将能够发现我所缺少的。
谢谢。