Jquery 合并单击事件处理程序
Posted
技术标签:
【中文标题】Jquery 合并单击事件处理程序【英文标题】:Jquery combine on click Eventhandler 【发布时间】: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 或其他选择器 【参考方案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 是我现在使用的解决方案,但我不喜欢...以上是关于Jquery 合并单击事件处理程序的主要内容,如果未能解决你的问题,请参考以下文章