Использую плагин easyzoom.js для изображений, но требуется он только для ПК, а для моб. устройст он работать не должен. Поэтому испльзую его с enquire.js.
var $easyzoom = $('.easyzoom').easyZoom();
enquire.register("screen and (max-width:1100px)", {
match: function() {
var api = $easyzoom.filter('.easyzoom--adjacent').data('easyZoom');
api.teardown();
},
unmatch: function() {
var api = $easyzoom.filter('.easyzoom--adjacent').data('easyZoom');
api._init();
},
});
Проблема в том, что все вроде бы работает но в консоли постоянно ошибка.
jQuery.Deferred exception: Cannot read property 'teardown' of undefined TypeError: Cannot read property 'teardown' of undefined
at Object.match (http://dm/design/kids/js/main.js:12:11)
at e.on (http://dm/design/kids/js/enquire.js:7:992)
at f.addHandler (http://dm/design/kids/js/enquire.js:7:1297)
at http://dm/design/kids/js/enquire.js:7:1894
at b (http://dm/design/kids/js/enquire.js:7:282)
at g.register (http://dm/design/kids/js/enquire.js:7:1853)
at HTMLDocument. (http://dm/design/kids/js/main.js:8:11)
at j (http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js:2:29948)
at k (http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js:2:30262) undefined
jquery-3.1.1.min.js:2 Uncaught TypeError: Cannot read property 'teardown' of undefined
at Object.match (main.js:12)
at e.on (enquire.js:7)
at f.addHandler (enquire.js:7)
at enquire.js:7
at b (enquire.js:7)
at g.register (enquire.js:7)
at HTMLDocument. (main.js:8)
at j (jquery-3.1.1.min.js:2)
at k (jquery-3.1.1.min.js:2)
Как ее исправить?
Вы используете фильтр не на том. Вы пытаетесь фильтровать дом элементы, а я не уверен, что плагин их вам возвращает.
Просто вместо
$easyzoom.filter('.easyzoom--adjacent').data('easyZoom');
Ищите
$('.easyzoom--adjacent').data('easyZoom');
$('.easyzoom--adjacent').data('easyZoom');
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть скрипт, который при наведении на элемент меню должен менять класс у блока с подкатегориями