javascript - 是否可以在 Javascript 中动态设置我想绑定(bind)的事件?

标签 javascript jquery events dynamic event-handling

我目前正在使用这个:

if ( $.support.touch == true ) {
    $(window).on('orientationchange', function(event){
        if ( full == false ) {
            self.hideAllPanels("7");
        }
    });
} else {
    $(window).on('orientationchange resize', function(event){
        if ( full == false ) {
            self.hideAllPanels("7");
        }
    });
}

因为当我不需要它们时,我在触摸设备上触发了很多调整大小事件。

我还尝试了以下语法:

$(window).on( ( 'orientationchange'+ ( $.support.touch ? '': ' resize') ), function(event){
    ...
});

但这会在 Firefox 中产生错误(app.start() 未在第 1 行定义 - 这是我的应用程序,所以这并不能告诉我太多信息)。切换回第一种语法,一切正常。

问题:
是否可以动态设置我要绑定(bind)的事件?如果是这样,在这种情况下正确的语法是什么?

谢谢!

最佳答案

做这样的事情可以最大限度地减少代码重复:

 var events = $.support.touch ? 'orientationchange' : 'orientationchange resize';

$(window).on(events, function(event) {
    if (full == false) {
        self.hideAllPanels("7");
    }
});

关于javascript - 是否可以在 Javascript 中动态设置我想绑定(bind)的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109622/

相关文章:

php - 从目录收集图像的 javascript 图像 slider

javascript - 获取在 jquery mobile 中创建的页面

javascript - 移动网站滚动问题

javascript - JS 未在 enquire.js 断点处更新

javascript - 该功能不起作用

javascript - 从 Firebase 上上传的图片中检索 URL

javascript - 只有在 Safari 中悬停后,垂直对齐的文本才不会立即正确格式化

javascript - PhantomJS 将 HTML 转换为 JPEG : Image is cut off

jquery - 使用 jquery 添加图标

c# - onkeydown 类型的事件在服务器端有意义吗?