将两个事件处理组合成一个事件处理[重复]

Posted

技术标签:

【中文标题】将两个事件处理组合成一个事件处理[重复]【英文标题】:Combining two event handling into a single event handling [duplicate] 【发布时间】:2014-08-26 04:55:00 【问题描述】:

我正在尝试组合我的两个相同的代码,它们仅在事件处理程序中有所不同。当网站加载时,它会启动我的函数,如果用户调整浏览器的大小,它会更新变量并再次运行函数。

$(window).load(function() 

        $(!agent) 

            var milk   = $().height(),
                choco  = $().width();

            doThis();

         else 
            var orange  = $().length(),
                apple   = $().width();

            orThis();
        

);

$(window).resize(function() 

        $(!agent) 

            var milk   = $().height(),
                choco  = $().width();

            doThis();

         else 
            var orange  = $().length(),
                apple   = $().width();

            orThis();
        

);

【问题讨论】:

【参考方案1】:

或者你可以定义函数:

function mySuperDuperEventHandler()

    $(!agent) 

        var milk   = $().height(),
            choco  = $().width();

        doThis();

     else 
        var orange  = $().length(),
            apple   = $().width();

        orThis();
    

然后将其分配为事件处理程序:

$(window).on('load resize',mySuperDuperEventHandler);

【讨论】:

太棒了!这行得通。谢谢你,杰卡伦。【参考方案2】:

您可以将多个事件与on() 侦听器结合起来。

$(window).on('load resize',function() 

        $(!agent) 

            var milk   = $().height(),
                choco  = $().width();

            doThis();

         else 
            var orange  = $().length(),
                apple   = $().width();

            orThis();
        

);

【讨论】:

以上是关于将两个事件处理组合成一个事件处理[重复]的主要内容,如果未能解决你的问题,请参考以下文章

React事件

React事件系统入门

JavaScript事件简述

jquery 事件,注册 与重复事件处理

React学习笔记

删除匿名事件处理程序 [重复]