Слушайте, ребята, я делаю простую функцию предварительной загрузки
(function($) {
$.fn.preload = function(settings) {
var config = {
before: function(){ return; },
end: function(){ return; },
after: function(a){ return; }
};
if (settings) $.extend(config, settings);
var limit = this.length - 1;
var counter = 0;
settings.before();
is_last_done = function(i){if (i == limit) return true;};
this.each(function(i, src){
$("<img>").attr("src", src).load(function(){
if( a == counter ) settings.after();
if(is_last_done(i)) settings.end(); // Last is done
counter++;
});
});
return this;
};
})(jQuery);
и вызываю ее с помощью
img = ['a.jpg', 'b.jpg', 'b.jpg'];
a = 1;
$(img).preload({
before: function(){ return; },
end: function(){ },
after: function(a){
console.log('first done');
}
});
. Проблема в том, что переменная a передается вafter () 'функция не передается.
Внутри плагина я могу получить доступ к переменной с помощью' a ', как в этой строке
if( a == counter ) settings.after();
Доступно, однако,' a 'Что делать, если я хочу назвать переменную к чему-то еще?Как получить доступ к аргументу функции after ()?
Мой код больше не будет работать, если я использую этот код
img = ['a.jpg', 'b.jpg',' b.jpg '];
b = 1;
$(img).preload({
before: function(){ return; },
end: function(){ },
after: function(b){
console.log('first done');
}
});
b не получено, есть идеи?
Спасибо