我正在玩一个真正简单的jQuery插件“hello world”,但我遇到了jQuery Plugin Boilerplate的麻烦。即使简单而且评论很好,我觉得我错过了一点,例如,无论我使用什么jQuery方法,我都会遇到错误。 这是我的初始化函数。
Plugin.prototype = {
init: function() {
console.log(this, this.element); // this.element return my element works fine
this.element.on('click', function() { // 'undefined' is not a function :(
alert('whoa');
});
this.element.click(function() { // not working at all :'(
alert('whoa');
});
},
open: function(el, options) {
// some logic
}
};
你能给我一个提示吗?
答案 0 :(得分:2)
由于您正在使用框架来制作jQuery插件,因此您必须遵循他们的约定。
如果您刚刚执行$.fn.plugin = function(){}
,则this
将成为jQuery对象,因为$.fn
是对jQuery.prototype
的引用。
在您的框架中,this.element
是本机DOM元素,因此要使用jQuery方法,您需要将其包装在$()
中。
$(this.element).on('click', function(){
});