【问题标题】:Javascript function not triggering on addEventListener resizeJavascript 函数未在 addEventListener 调整大小时触发
【发布时间】:2015-05-28 15:52:10
【问题描述】:

我阅读了the response here,但据我所知,我的代码与解决方案相匹配。

responsedemoscripts 在页面加载时运行。 balancecolumns 的第一个实例运行,但调整大小根本不会触发 balancecolumns。

 function responsedemoscripts() {
    window.addEventListener('resize', balancecolumns);
    balancecolumns();
}


 function balancecolumns () {
    var longestColumn = 0;
    $('.contentitem').each(function () {
        longestColumn = Math.max(longestColumn, $(this).innerHeight());
        });
    $('.contentitem').height(longestColumn);
 }

【问题讨论】:

    标签: javascript resize addeventlistener


    【解决方案1】:

    你做错了将事件监听器放在一个函数中。如果你不调用它,这个函数永远不会触发。顺便说一句,如果您想在加载时调用 balancecolumns,您可以执行以下操作:window.onload=balancecolumns; 和以后的window.addEventListener('resize', balancecolumns, false); 或使用您的代码 sn-p 看到这个小提琴:http://jsfiddle.net/n8ekpqcp/

    而不是这个:

     function responsedemoscripts() {
        window.addEventListener('resize', balancecolumns);
        balancecolumns();
    }
    

    这样做:

      window.onload=balancecolumns;
      window.addEventListener('resize', balancecolumns, false);
    

    【讨论】:

    • "如果你不调用它,这个函数永远不会触发。"我不明白这一点。 responsedemoscripts 确实在加载时被调用,那么为什么在 responsedemoscripts 运行时没有添加处理程序?
    • 好吧,您的代码 sn-p 并未显示您正在调用 responsedemoscripts。但是,如果您调用 responsedemoscripts(),您的代码也可以正常工作。看到这个小提琴:jsfiddle.net/n8ekpqcp
    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多