jQuery插件样板谁是我的这个?

时间:2012-12-17 22:18:47

标签: jquery

我正在玩一个真正简单的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
    }
};

你能给我一个提示吗?

1 个答案:

答案 0 :(得分:2)

由于您正在使用框架来制作jQuery插件,因此您必须遵循他们的约定。

如果您刚刚执行$.fn.plugin = function(){},则this将成为jQuery对象,因为$.fn是对jQuery.prototype的引用。

在您的框架中,this.element是本机DOM元素,因此要使用jQuery方法,您需要将其包装在$()中。

$(this.element).on('click', function(){
});