【问题标题】:Setting Up Multiple Event Responses using named functions使用命名函数设置多个事件响应
【发布时间】:2015-05-26 02:13:09
【问题描述】:

我正在尝试改变这一点:

$( "p" ).on({
    "click": function() { console.log( "clicked!" ); },
    "mouseover": function() { console.log( "hovered!" ); }
});

看起来像这样:

$( "p" ).on({
    "click": fnOne(); },
    "mouseover": fnTwo(); }
});


function fnOne(){
    alert("click");
}

function fnTwo(){
    alert("click");
}

实现这一目标的正确方法是什么?

【问题讨论】:

    标签: javascript jquery html dom scripting


    【解决方案1】:

    您需要将函数引用作为值传递给事件名称属性

    $("p").on({
        "click": fnOne,
        "mouseover": fnTwo
    });
    

    在您的代码中,存在语法问题,您还试图做的是调用这些函数并将这些函数返回的值作为未定义的事件处理程序传递。

    【讨论】:

    • 谢谢。我会在几分钟内将您的帖子标记为答案。顺便说一句,例如,我想在click 事件上同时调用fnOnefnTwo"click": fnOne,fnTwo "mouseover": fnTwo 当然是不正确的。什么是正确的?
    • @Arbaaz 您可以创建另一个函数来调用这两个函数。jsfiddle.net/arunpjohny/Lmmmt5eh/2
    • 再问一个问题。我可以在您给出的第二个示例中关闭事件侦听器jsfiddle.net/Lmmmt5eh/4,但可以说在某些时候我想在此示例中停止列出 fnTwo jsfiddle.net/arunpjohny/Lmmmt5eh/2 是否可能?
    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2022-08-24
    • 2019-12-29
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多