Actually,simplicity is not simple

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的内部实现。

日志信息 »

该日志于2010-05-24 14:34由 asins 发表在Develop分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过评论 RSS订阅这个日志的所有评论。

相关日志 »

2 条评论

  1. coach outlet coach outlet November 18th, 2010 at 03:06 pm

    当幻想没有了以后,你还可以生存,但是你虽生犹死。

  2. New Jordans New Jordans November 25th, 2010 at 05:24 pm

    谢谢分享!!!

发表评论 »

captcha
请输入验证码