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 );
各関数の後にlastim変数で5を取得する方法は? 助けてくれてありがとう!