Привет, у меня есть файл js, который я использую для создания простого слайдов. Он отлично работает, когда используется сам по себе, но Im пытается преобразовать его в функцию, чтобы я мог его создать. Функция, которая работала до этого, теперь дает мне эту ошибку:
Ошибка типа: недопустимый 'in' операнд e в jquery 1.10.2v
Я предполагаю, что это что-то о jquery. Я понятия не имею. При выполнении шагов в firebug ошибка появляется в строке "$ (вверху).delay". Вот мой код.
(function( $ ){
$.fn.pictureFade = function( options ){
var images = options.images;
i = 0;
var top = $("#topImage img");
var bottom = $("#botImage img");
//Set first images
$(top).attr("src", images[i]);
$(bottom).attr("src", images[i+1]);
// $(top).fadeToggle(4000, function(){ });
toggleDiv("top");
};
function toggleDiv(pos){
if(pos == "top"){
$(top).delay(2000).fadeToggle(4000, "linear", function(){
i++;
if(i == images.length-1)i = -1;
$(top).attr("src", images[i+1]);
toggleDiv("bottom");
}
);
}
if(pos == "bottom"){
$(top).delay(2000).fadeToggle(4000, "linear", function(){
$(bottom).attr("src", images[i+1]);
toggleDiv("top");
}
);
}
}
})( jQuery );
Обновление: я только заметил, что если я помещаю функцию toggleDiv внутри функции ".fn.pictureFade", тогда она отлично работает. Я всегда думал, что отдельные функции должны быть вне его. Я ошибаюсь?
var top = $("#topImage img");
top
уже является объектом jQuery, вы не должны его снова обертывать $(top)
,
просто делайте, как top.delay(...
, top.attr("src", images[i+1]);
и т.д.