2015-09-03 4 views
0

Может ли кто-нибудь сказать мне, почему следующий код работает в firefox, но не в хроме? чтобы проверить это на странице, ознакомьтесь с этим page на моем сайте и измените цвета. Желая поменять места изображений, если дисплей сетчатки обнаружен ...jQuery, работающий в firefox, но не chrome

Вот мой код:

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$&'); 
}); 
} 
    } 
    } 
    }); 

Кроме того, я бы предпочел использовать .Кнопку вместо .click (так, что он будет работать прямо на мобильная версия моего сайта), но это не работает вообще ...

+0

Я пытаюсь его в Chrome, что я должен искать как симптом? – Barmar

+0

Я пробовал FF и Chrome и не заметил никакой разницы. Хотя я не на дисплее Retina. – Barmar

ответ

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() действительно для -

Метод $.contains() возвращает истину, если элемент DOM обеспечивает второй аргумент потомок элемента DOM, предоставленный первым аргументом, будь то прямой ребенок или более глубоко вложен. В противном случае возвращается false. Поддерживаются только узлы элементов;, если второй аргумент является текстовым или комментарием, $.contains() вернет false.

Source

Смежные вопросы