jQuery在firefox中工作但不是chrome

时间:2015-09-03 23:31:55

标签: javascript jquery html google-chrome

任何人都可以告诉我为什么以下代码在firefox中运行但不是chrome?要在页面上对此进行测试,请在我的网站上查看此page并更改颜色。如果检测到视网膜显示器,想要交换图像......

这是我的代码:

    jQuery('#pa_color').click(function(){
 var monkey = jQuery('.jck-wt-images__image').attr('src')                   
if (monkey !== undefined) {


if (window.devicePixelRatio > 1) {
  if (jQuery('.jck-wt-images__image').attr('src').contains('@2x')) {


}else{
      jQuery('img.jck-wt-thumbnails__image, img.jck-wt-images__image').attr('src', function(index, attr) {
  return attr.replace(/\.[^.]*$/, '@2x$&');
});
}
  }
  }
  });

另外,我宁愿使用.change而不是.click(以便它可以在我的网站的移动版本上正常工作),但这根本不起作用......

1 个答案:

答案 0 :(得分:1)

我认为这可能是问题 - 你在这里滥用了.contains()方法 -

customjquery.js - 第8行

if (jQuery('.jck-wt-images__image').attr('src').contains('@2x')) {..}

你应该使用的是 -

if (jQuery('.jck-wt-images__image').attr('src').indexOf('@2x') >= 0) {..}

$.contains()的真正含义 -

  

如果第二个参数提供的DOM元素是第一个参数提供的DOM元素的后代,$.contains()方法返回true,无论它是直接子节点还是嵌套更深。否则,它返回false。 仅支持元素节点; 如果第二个参数是文本或注释节点,$.contains()将返回false。

<强> Source