【问题标题】:Jquery combine on click EventhandlerJquery 合并单击事件处理程序
【发布时间】:2022-01-24 05:31:49
【问题描述】:

我有一个小链接例程,它拦截网络上的每个链接并相应地处理它。

如何将以下两个 jquery 事件处理程序合并到一个 EventHandler 中?

$("body").on("click", "a", function (e) {
 //call function
};



// mobile links
$("#Mobile a").on("click", function (e) {
 //call same function
});

【问题讨论】:

  • 请看这个link,我觉得和你想要的一样
  • 这不是涵盖了Body的所有anchors吗? $("body").on("click", "a", function (e) ???
  • @KHIMAJI VALUKIYA - 不,我无法触及身体的所有锚点。正是这里是我的问题。实际上,#Mobile 链接稍后会在 DOM 中加载。并且 $("body") 没有到达他们 :-(
  • 在正文中添加该锚点后,您需要再次初始化该点击事件,如果您有多个锚点,请尝试使用 Class 或其他选择器

标签: javascript jquery click onclicklistener eventhandler


【解决方案1】:

试试这个:

$('body, #Mobile a').on('click', someFunction);

$('body').add('#Mobile a').on('click', someFunction);

现在是函数部分

function someFunction(){
    // Your code here
}

【讨论】:

    【解决方案2】:

    类型1:你可以定义函数,然后作为参数传递

    function myClickEventHandler(e) {
      
    }
    
    $("body").on("click", "a", myClickEventHandler);
    
    // mobile links
    $("#Mobile a").on("click", myClickEventHandler);
    

    类型2:您可能想更新选择器(通过逗号分隔传递多个选择器)

    $("body").on("click", "a, #Mobile a", function (e) {
     //call function
    };
    

    【讨论】:

    • Type 2 对我不起作用。到目前为止,我无法使用 $("body") 语句来获取 äMobile 锚点。我想,它的原因#Mobile 将很晚才加载到 DOM。 Type 1 是我现在使用的解决方案,但我不喜欢...
    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多