1

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

你能给我一个提示吗?

4

1 回答 1

2

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

如果你只是在做$.fn.plugin = function(){},那么this将是一个 jQuery 对象,因为$.fn是对jQuery.prototype.

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

$(this.element).on('click', function(){
});
于 2012-12-18T14:27:07.227 回答