Jquery 我的第一个插件,如何防止重复应用程序到元素

Jquery 我的第一个插件,如何防止重复应用程序到元素,jquery,jquery-plugins,Jquery,Jquery Plugins,我有以下资料: $('.comment_content').live('focus click', function() { $(this).bTextAreaResizer(); }); 我需要它的现场点击,因为评论内容框动态出现后,有时页面加载。我刚刚注意到,每次都会继续将bTextAreaResizer()重新应用到textarea,这会导致浏览器停止。在插件中,我有: (function($){ $.fn.bTextAreaResizer = function(opti

我有以下资料:

$('.comment_content').live('focus click', function() {
    $(this).bTextAreaResizer();
});
我需要它的现场点击,因为评论内容框动态出现后,有时页面加载。我刚刚注意到,每次都会继续将bTextAreaResizer()重新应用到textarea,这会导致浏览器停止。在插件中,我有:

(function($){
    $.fn.bTextAreaResizer = function(options) {

    return this.each(function() {

        //bind events
        $(this).bind('scroll keyup', function() {
            resizeTextArea($(this));
        });
如果我们还没有绑定到这个元素,我怎么说呢?可能吗


谢谢

我想有更好的方法,但是为了避免重复的事件绑定,您可以先解除事件绑定。你可以用它。顺便说一句,在这种情况下,您不需要遍历所有元素:

return this.unbind('.btar')
           .bind('scroll.btar keyup.btar', function() {
                resizeTextArea($(this));
           });

我想有更好的方法,但是为了避免重复的事件绑定,您可以在之前解除绑定事件。你可以用它。顺便说一句,在这种情况下,您不需要遍历所有元素:

return this.unbind('.btar')
           .bind('scroll.btar keyup.btar', function() {
                resizeTextArea($(this));
           });

谢谢,但那会一次又一次地束缚、解开。考虑到我的直播是聚焦于点击。。。如何在插件中检查它是否已绑定,如果未绑定,则进行绑定?@TheExit:True。正如我所说,我想有一个更好的方法来解决你的特殊情况。。。我认为你不能测试它。事件名称空间页面给出了
undbind
bind
示例,作为处理Ajax调用后添加事件处理程序的示例。如果有别的方法,他们会用的。谢谢,但那会一次又一次地束缚,解开。考虑到我的直播是聚焦于点击。。。如何在插件中检查它是否已绑定,如果未绑定,则进行绑定?@TheExit:True。正如我所说,我想有一个更好的方法来解决你的特殊情况。。。我认为你不能测试它。事件名称空间页面给出了
undbind
bind
示例,作为处理Ajax调用后添加事件处理程序的示例。如果有别的办法,他们会用的。