利用$ .on和jQuery插件

时间:2012-03-06 14:10:37

标签: jquery jquery-plugins

我一直试图让我的头脑在一段时间内做到这一点。也许我错过了什么......

说我有插件模式:

(function($){

    $.fn.myPlugin = function(options){           

        var bindEvents = function(elem){

        // Bind the events here.
        // EDIT
        // My first first thought would be to pass the element to the method 
        // but what you are doing here is actually just bind the event to existing
        // elements and not allowing for ajax added events.
        $(document.body).on("click", $(elem), function(event){

           // Do your thang....
        });

        };

        return this.each(function(){

        bindEvents(this);

        });

    };

}(jQuery||_jQuery));

如何使用$.on()函数将我想要的事件绑定到对象,以便我可以处理通过Ajax请求加载的任何dom元素?

修改

为了澄清我的意思,我在代码中添加了一些注释。

1 个答案:

答案 0 :(得分:0)

目前我能想到的最佳解决方案......

(function($){

    $.myPlugin = function(selector, options){           

        var bindEvents = function(elem){

        // Bind the events here passing the selector.
           $(document.body).on("click", selector, function(event){

           // Do your thang....
        });

        };

        bindEvents(this);

        // Return the jQuery function to allow chaining;
        return $(this);

    };

}(jQuery||_jQuery));

然后可以使用以下方法调用:

$.myplugin(selector,options);