事件取决于jQuery上的动态变量

阿尔瓦罗

我想知道哪种方法是处理依赖于变量状态的事件的正确方法。

现在,我有一个仅在选项isTablet设置为true时添加的侦听器(好像没有,它会在IE的旧版本中损坏)。所以看起来像这样:

if(options.isTablet){
    document.addEventListener('touchmove', function(e){
      ....
    });
}

现在,如果要isTablet使用setter动态更改变量,会遇到麻烦,并且不会加载事件touchmove

$.fn.myPlugin.setIsTablet = function(value){
    options.isTablet = value;
}

我猜最简单的方法是始终添加事件并在事件内部确定是否执行代码:

document.addEventListener('touchmove', function(e){
    if(options.isTablet){
        ....
    }
});

但是在IE 8中引发错误:

对象不支持属性或方法“ addEventListener”

这样做的方式是什么?谢谢。

杰森p

通常,我总是会添加侦听器并检查其中的条件。为避免错误,由于您使用的是jQuery,只需使用jQuery:

$(document).on('touchmove', function(e){
    if(options.isTablet){
        ....
    }
});

如果您有一个经常调用的处理程序,则可以考虑在不需要时将其关闭。像这样的东西:

function myHandler(e) { ... }

$.fn.myPlugin.setIsTablet = function(value){
    options.isTablet = value;
    if (value) {
        $(document).off('touchmove').on('touchmove', myHandler);
    } else {
        $(document).off('touchmove');
    }
}

注意不要多次绑定处理程序(例如,如果连续true发送setIsTablet多次)。您也可以使用标志,而不是像我所示的那样取消绑定/绑定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SVG路径事件重叠,具体取决于变量

来自分类Dev

使变量取决于目标

来自分类Dev

多个jQuery .on()事件不支持xBrowser(取决于顺序)

来自分类Dev

使用JQuery的选择动态变量

来自分类Dev

如何使用jQuery创建动态变量?

来自分类Dev

如何使用jQuery创建动态变量?

来自分类Dev

使用JQuery的Selecy动态变量

来自分类Dev

jQuery:从FOR LOOP返回多个动态变量

来自分类Dev

将动态变量添加到onclick事件

来自分类Dev

将动态变量添加到onclick事件

来自分类Dev

jQuery:$ .post上的值取决于所选链接

来自分类Dev

Randrange取决于变量-Python

来自分类Dev

背景颜色取决于变量

来自分类Dev

动态变量

来自分类Dev

PHP动态变量

来自分类Dev

引用动态变量?

来自分类Dev

Javascript动态变量

来自分类Dev

bash动态变量

来自分类Dev

动态变量属性

来自分类Dev

动态变量问题

来自分类Dev

如何在dplyr :: mutate()的RHS上使用动态变量?

来自分类Dev

带有 Django 的 HTML 上的动态变量值

来自分类Dev

Tsung XML 配置文件上的动态变量

来自分类Dev

类成员变量是动态的。取决于打字稿中地图的键

来自分类Dev

Excel 2013-创建具有栏宽的2数据系列图表是动态的(取决于变量)

来自分类Dev

ASP.NET MVC C# 动态 url 取决于页面变量

来自分类Dev

jQuery-从动态变量中读取值?

来自分类Dev

在$ .post中创建动态变量分配-JQuery

来自分类Dev

jQuery属性名称作为动态变量