Проблема: zoomsl не работает с версией jquery 3.3.1
Ошибка:
Решение:
Вам необходимо изменить new Image()
.load()
функцию в zoomsl-3.0.js
Применить $("img").one("load", function() { ... }
там
Пожалуйста, отметьте codepen пример здесь
Старый код:
$.fn.imagezoomsl = function(options){
options = options || {};
return this.each(function(){
if (!$(this).is("img")) return true;
var that = this;
setTimeout(function () {
$(new Image()).load(function(){//this is old line
sergelandimagezoomer.init($(that), options);
}).attr('src', $(that).attr('src'));
}, 30);
});
};
Новый код:
$.fn.imagezoomsl = function(options){
options = options || {};
return this.each(function(){
if (!$(this).is("img")) return true;
var that = this;
setTimeout(function () {
$("img").one("load", function() {//new code
sergelandimagezoomer.init($(that), options);
}).attr('src', $(that).attr('src'));
}, 30);
});
};
Вы можете видеть, что $("img").one("load", function() { ... }
применяется в функции setTimeout
.
Просто измените эту строку, и она начнет работать.
Это изменение будет работать и в более старых версиях jquery.
Я надеюсь, что вы нашли решение, пожалуйста, не стесняйтесь, чтобы задать вопрос.