javascript - 使用 jQuery one() 取消绑定(bind)事件字符串中的所有内容

标签 javascript jquery

我正在使用 JQuery 的 .one() 函数检查任何交互。

    var myEvents = 'mousedown mousemove mouseup touchstart touchmove touchend mouseout';

    jQuery(document).one(myEvents, function(){
        //do something only once.
});

但我希望一旦这些事件中的任何一个事件被触发,所有这些都将被绑定(bind)。我知道我可以使用 jQuery(document).unbind(myEvents) 再次取消绑定(bind),但想知道是否有一种干净的内置方法可以在一个事件后简单地取消绑定(bind)。

编辑:这是一个 fiddle :http://jsfiddle.net/4HkQy/6/

最佳答案

您可以使用恰好满足该目的的函数来扩展 jQuery。

jQuery.fn.extend({
    oneForAll: function(events, handler) {
        var that = this,
            oneForAll = function() {
                that.unbind(events, oneForAll);
                handler.apply(this, arguments);
            };

        that.on(events, oneForAll); 
    }
});

您将按照使用one的方式使用它,它只是oneForAll

JSFiddle:Demo

关于javascript - 使用 jQuery one() 取消绑定(bind)事件字符串中的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286968/

相关文章:

javascript - MongoDB:将 sort() 添加到查询中会破坏 $and 查询的结果集

javascript - 在非指令 Controller 函数中访问属性值

javascript - 变换旋转和翻转效果——CSS3和jQuery

jquery - 简单的侧边栏引导二级菜单

javascript - jquery 在输入单击时添加类并在单击其他输入时删除类

php - 使用 "fallback script"从 WordPress 中的 Google AJAX 库 API 加载 jQuery

javascript - jquery中的动画效果无法正常工作

javascript - 纯粹与 UI 相关的 javascript 在 Durandal View 中放在哪里?

发布时的 Javascript 数组(AJAX)作为单个字符串接收

javascript - 回发后禁用所有提交按钮的最佳方法