我正在寫jQuery插件,並且遇到了一個小問題 - 無法從事件的處理函數中獲取變量。看看我的例子諒解:jQuery - 從處理函數接收正確的變量值
(function($){
var methods = {
init : function(options) {
var settings = $.extend({
'images': [['1.jpg'],['2.jpg'],['3.jpg']]
}, options);
var lastim=2; //just for test
$.each(settings.images,function(event) {
console.log(lastim); //Getting 2, Ok!
img=new Image();
img.src=settings.thumbPath+'/'+this[0];
$(img).load(function(event)
{
lastim=5;
});
});
console.log(lastim); //Getting 2, expecting 5
}};
$.fn.testSlider = function(method) {
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('No such method'+method);
}
};
})(jQuery);
各功能後如何獲得5 lastim變量?預先感謝您的幫助!
這是因爲'load'是異步的。在你給它的回調中做你需要做的事情。 –