我想将事件监听器绑定(bind)/取消绑定(bind)到窗口大小调整,我使用 .on()
/.off()
函数来执行此操作,因为 .off()
需要传递与 .on()
中相同的函数,我创建了一个单独的函数,该函数在两个地方都传递。
这是代码(不起作用):
var i = 0;
function onResizeListener(){
$('#debug').html(i);
i++;
}
$(document).ready(function() {
$(window).on('resize',onResizeListener());
});
示例:http://jsfiddle.net/eRupC/2/
这个正在工作:http://jsfiddle.net/eRupC/1/当我用匿名函数包装 onResizeListener()
时。
示例中理想的结果:当您调整窗口大小时,数字已更改。
最佳答案
如果您需要将某些内容传递给 onResizeListener
,请尝试此操作。如果没有,请按照其他答案所述从 onResizeListener 中删除括号。 Bind Documentation
$(document).ready(function() {
var x = 2;
var y = 4;
$(window).bind('resize', function() {
onResizeListener(x, y);
});
});
这也可以:
$(document).ready(function() {
$(window).on('resize', function() {
onResizeListener();
});
});
致unbind从调整大小事件调用函数,但仍将参数传递给您可以使用的函数:
$(document).ready(function() {
//bind
$(window).bind('resize', { foo: 'bar' },onResizeListener);
//unbind, wrap in event you wish to use to unbind it
$(window).unbind('click', onResizeListener);
});
关于jquery - 为什么在调整窗口大小时不触发非匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825689/