【问题标题】:Bind event on width change, not height (as resize do both);在宽度变化时绑定事件,而不是高度(因为两者都调整大小);
【发布时间】:2014-11-20 14:31:33
【问题描述】:

我有下一个 javascript 代码:

   function() {
        $( this ).on( "resize", $special.handler);
    }

它工作正常,但我不需要它来触发高度变化,我只需要在宽度变化时工作。

所以我试图在调整大小检测中添加一个 if 语句,并仅在宽度发生变化时绑定 $special.handler

还没有找到一个简单的方法来做到这一点,所以你能帮我找出我做错了什么吗?

目前我已经完成了下一个代码

 function() {
        var widthBefore = $(this).width();
        $( this ).on( "resize", function() {
            if ($(this).width() != widthBefore) {
                $(this).on( WIDTH CHANGE ONLY, $special.handler);
                widthBefore = $(this).width();
            }
        });
    }

【问题讨论】:

  • 你所拥有的基本上是唯一的方法,只有宽度没有特殊事件。
  • 只有宽度改变没有事件。修改元素宽度为什么不运行函数?
  • 另外,你确定这不是 XY 问题吗?
  • adeneo,BenM - 感谢您的意见,我以为我错过了什么,但似乎没有))

标签: javascript jquery resize width


【解决方案1】:

没有宽度更改事件,但如果必须维护上下文,则可以使用 -

function() {
        var widthBefore = $(this).width();
        $( this ).on( "resize", function() {
            if ($(this).width() != widthBefore) {
                $.proxy($special.handler,this);
                widthBefore = $(this).width();
            }
        });
    }

【讨论】:

    猜你喜欢
    • 2012-10-17
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多