一个简单的专业问题:将函数再次绑定到事件-从函数...反复调用

问题描述

| 如果用户单击了某个目标,则不应执行任何操作,但应再次将click事件绑定为“一个”,这是一种探索性的方式...这样做的效果如何。
        $(document).one(\'click\',function(ev){
            if(!$(ev.target) == $(\'.gallerystatus input\')){
                $(\'.gallerystatus input\').trigger(\'focusout\');
            }
        });
感谢您的任何建议!     

解决方法

我认为这是您要的:
    var clickGalleryStatus = function(ev){
        if(!$(ev.target) == $(\'.gallerystatus input\')){
            $(\'.gallerystatus input\').trigger(\'focusout\');
        } else {
            $(document).one(\'click\',clickGalleryStatus);
        }
    };

    $(document).one(\'click\',clickGalleryStatus);
如果没有点击“ 2”,它将重新绑定click事件。     ,如果没有发生条件,则与其重新绑定该事件,不如解除绑定该事件,则最好:
var handler = function(ev){
    if(!$(ev.target) == $(\'.gallerystatus input\')){
        $(\'.gallerystatus input\').trigger(\'focusout\');
        $(document).unbind(\'click\',handler);
    }
};

$(document).bind(\'click\',handler);