jquery - 为什么在调整窗口大小时不触发非匿名函数?

标签 jquery jquery-events

我想将事件监听器绑定(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/

相关文章:

javascript - 无法弄清楚是什么导致了意外的 token 错误

javascript - jQuery 进度条 PHP 上传未正确响应

javascript - 未捕获的语法错误 : Unexpected string

javascript - 通过类似工具提示的 div 传播 JavaScript 事件

jquery - 如何删除此 codepen 移动示例中提出的自定义滚动

jquery - .width() 没有给出一致的结果

javascript - jQuery 点击功能——选择器的 css 没有被改变

javascript - 将处理程序附加到窗口滚动事件

jquery - 我可以在按钮单击时显示/创建 jsTree 吗?

javascript - 如何使用 jQuery 在新选项卡或窗口中捕获打开的链接?