О контексте, в котором вызывается функция showPoint
.В вашем случае вы передали функцию обработчику событий jQuery, и это заставляет jQuery вызывать функцию в контексте элемента event.target.Вы можете перезаписать это, используя jQuery.proxy()
, в вашем коде это будет выглядеть так:
jQuery.widget("ui.test",{
_init: function(){
$(this.element).click($.proxy(this.showPoint, this));
},
showPoint: function(E){
E.stopPropagation();
alert(this.options.dir);
}
}
Обратите внимание, что это перезапишет переменную this
внутри функции showPoint, поэтому выбольше не может использовать такие вещи, как $(this).hide()
, вам придется использовать $(E.target).hide()
или на самом деле $(this.element).hide()
.