我爲什麼這個代碼是這樣寫的困惑,但我一定要了解這一點很重要:在jQuery中,如何在這種情況下正確使用「this」?
$.fn.mapImage = function(options){
//Set user input options and defaults
var optionConfig = $.extend({}, $.fn.mapImage.defaults, options);
image=this;
this.image = this;
// Assign defaults
this.getUrl = optionConfig.getUrl;
this.saveUrl = optionConfig.saveUrl;
this.deleteUrl = optionConfig.deleteUrl;
this.editable = optionConfig.editable;
this.pinpoints = optionConfig.pinpoints;
image.pinpoints = optionConfig.pinpoints;
image.pinpointCount = 0;
this.canvas = $('<div class="canvas"><div class="create-mode"></div><div class="edit-mode"></div></div>');
this.image.after(this.canvas);
this.canvas.height(this.height());
this.canvas.width(this.width());
this.canvas.css('background-image', 'url("' + this.attr('src') + '")');
this.canvas.children('.create-mode').css('cursor', 'crosshair');
this.canvas.children('.create-mode, .edit-mode').height(this.height());
this.canvas.children('.create-mode, .edit-mode').width(this.width());
this.canvas.children('.edit-mode').show();
this.canvas.children('.create-mode').hide();
$(this).hide();
}
我不什麼明白的是爲什麼代碼有image=this
和this.image=this
,是同樣的事情?爲什麼不做一些像image.after(this.canvas)
這樣的this
是指第一個地方通過函數傳遞的當前對象?
這是一個很模糊的答案 – Ben 2010-07-07 06:32:35
@Ben - 我盡力了......哪部分你發現不清楚? – Reigel 2010-07-07 06:39:56
在評論中使用「this」這個詞使得解釋非常混亂,因爲你試圖解釋關鍵字this。我知道你的意思,但對於有人想知道它,我認爲這隻會讓人困惑。 – Ben 2010-07-11 03:29:43