jQuery.contains()函数在Firefox下的'bug'
再来写点有关contains的事情,今天做项目时刚好可以用上contains,只是我的项目是基于jQuery的,就使用jQuery内部的jQuery.contains()函数了,但我发现这函数在Firefox有问题。
先看下测试Demo
$(document).ready(function(){
alert( $.contains($('div.wrap')[0], $('#fdsfafd')[0]) );
alert(4322);
$('h1').click(function(){alert(111);});
});
在Firefox下,如果$('#fdsfafd')[0]不存在会导致整个页面的JS锁死,不再会执行任何代码了。
我现在的解决办法是是保证$.contains()中第二个参数存在,代码如下:
alert( $.contains($('div.wrap')[0], $('#fdsfafd')[0]||$('body')[0]) );
方法我知道很淫荡,但先这样了,没时间去改jQuery的内部实现。
2 条评论 ▼
当幻想没有了以后,你还可以生存,但是你虽生犹死。
谢谢分享!!!