jquery代码将无法在IE中工作

我对这个问题感到困惑,这个问题似乎在我启动IE 9开发者工具后就开始了。我在Visual Studio 08中开发(因为页面是ASP.net ap的一部分),并且在所有其他浏览器中工作的所有突然简单的Jquery选择器都不能在IE中工作 - 无论是在VS内部浏览器(IE7)或独立的IE 9中。Visual Studio告诉我,一个Jquery插件(Scrollpane或Preload,取决于哪个被首先调用)是“未定义的”。我没有得到其他错误。jquery代码将无法在IE中工作

我已经删除了插件和对它们的引用。我还删除了预加载期间阻止点击的叠加层。这对IE没有任何影响。

这是,无论我怎么明确使它不会在IE中运行的代码行:

$('#pictureholder > div.display > img[src|="' + image + '"]').parent('div.display').removeClass('noshow').addClass('nowshow').fadeIn('slow'); 

这将运行在有或没有明确的父母选择其他的浏览器。

回答:

似乎有一个<img>的属性选择器的错误。

Sizzle在不支持querySelectorAll()elem [attr]的UA中使用,它返回image-src的翻译路径。所以选择器不匹配。 我认为这是一个真正的错误,因为它不是CSS规范中定义的行为。

您可以使用过滤器()代替:

$('#pictureholder > div.display > img') 

.filter(function(){return $(this).attr('src').match(new RegExp('^('+image+'|'+image+'-.*)$'));})

.parent('div.display')//continue the chain here

或更改滋滋声的行为。要做到这一点,插入右侧嵌入的jquery.js后,下面的指令:

jQuery.find.selectors.attrHandle.src= function(elem) 

{

return elem.getAttribute("src",2);

}

(这将迫使灒与属性工作的文件,而不是该元素的属性中定义)

以上是 jquery代码将无法在IE中工作 的全部内容, 来源链接: utcz.com/qa/266796.html

回到顶部