我目前正在使用它:
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中产生错误({1}}未在第1行上定义 - 这是我的应用程序,所以这并没有告诉我太多)。切换回第一种语法,一切正常。
问题:
是否可以动态设置我想要绑定的事件?如果是这样,在这种情况下,正确的synatx是什么?
谢谢!
答案 0 :(得分:1)
这是什么
function handler( event ) {
if ( full == false ) {
self.hideAllPanels("7");
}
}
$(window).on('orientationchange', handler );
if ( !$.support.touch ) {
$(window).on( 'resize', handler);
}
对我来说看起来更干净
答案 1 :(得分:1)
这未经过测试,但您可以使用以下内容进行测试:
function handler(event) {
if ( full == false ) {
self.hideAllPanels("7");
}
}
$(window).on('orientationchange', handler);
if ( ! $.support.touch ) {
$(window).on('resize', handler);
}
答案 2 :(得分:1)
可以最大限度地减少代码重复:
var events = $.support.touch ? 'orientationchange' : 'orientationchange resize';
$(window).on(events, function(event) {
if (full == false) {
self.hideAllPanels("7");
}
});