首先上代码var tt = $( 'button' ).click( function() {
alert( '13242' );
} );
tt.remove();
$( 'body' ).append( tt );
document.getElementsByTagName( 'button' )[ 0 ].onclick = function() { alert( 2342 ); };
var tt = document.getElementsByTagName( 'button' )[ 0 ];
tt.remove();
document.body.appendChild( tt );在BODY中随便加个BUTTON标签,上面两段代码,第一段代码没有触发alert,而第二段代码触发了alert,原生暂不清楚内部实现,从以上代码可以看出,总之事件没有丢失,jQuery就不同了,请问是什么原因导致了这种情况的发生,是BUG还是jQuery的必然?多谢各位了
alert( '13242' );
} );
tt.remove();
$( 'body' ).append( tt );
document.getElementsByTagName( 'button' )[ 0 ].onclick = function() { alert( 2342 ); };
var tt = document.getElementsByTagName( 'button' )[ 0 ];
tt.remove();
document.body.appendChild( tt );在BODY中随便加个BUTTON标签,上面两段代码,第一段代码没有触发alert,而第二段代码触发了alert,原生暂不清楚内部实现,从以上代码可以看出,总之事件没有丢失,jQuery就不同了,请问是什么原因导致了这种情况的发生,是BUG还是jQuery的必然?多谢各位了
解决方案 »
- 如何用jquery选择父节点下的第一代子节点
- 如何侦听triggerfield的回车事件?
- 帮我注释下这些代码!看的头晕
- Ext.menu.ColorItem 中 一个 浏览器兼容性问题
- jsp中iframe的打印难题,急待解决
- 页面边距离的确定,含滚动条?
- 急急急急!!extjs4里的store.load返回0条记录的时候报错
- 用Windows XP调用meizz的WEB Calendar 3.0,老是提示“为了保护您的安全,ie已限制此文件显示可能访问您的计算机的活动内容...”
- EVENT事件之间传值?
- 聊天室中的在线问答游戏如何实现???
- jQuery easyui的datagrid里的插入行insertRow怎么用?
- mfc调用程序怎么获得javascript返回值为数组的值
for (var i = 0, elem; (elem = this[i]) != null; i++) {
if (!selector || jQuery.filter(selector, [elem]).length) {
if (!keepData && elem.nodeType === 1) {
jQuery.cleanData(elem.getElementsByTagName("*"));
jQuery.cleanData([elem]);
} if (elem.parentNode) {
elem.parentNode.removeChild(elem);
}
}
} return this;
},
jquer的remove有个这个jQuery.cleanData
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<button>test</button>
</body>
</html>
<script>
var tt = $( 'button' ).click( function() {
alert( '13242' );
} );
tt.remove();
$( 'body' ).append( tt );
</script>原因就如2楼所说,就是因为remove的关系,原先还以为是jQuery因为自己维护了事件队列,所以产生了什么逻辑上的问题,非常感谢哈。