如何检查在一个特定的DIV中是否有链接被点击

jQuery - How check if any link was clicked in a specific DIV?

本文关键字:是否 DIV 链接 检查 何检查 一个      更新时间:2023-09-26

在HTML代码中我的页面包含:

<div id="main_menu">
  <a href="#" id="login">Link1</a>
  <a href="#" id="logout">Link2</a>
</div>
<div id="second_menu">
  <a href="#" id="information">Link info</a>
  <a href="#" id="profile">My profile</a>
</div>
<div id="menu_oustide"><a href="#" id="something">Link1</a></div>

在jQuery中,如果我想检查用户是否点击了页面中的任何链接,我使用以下代码:

$('a').click(function() { 
  // do something
});

如果用户只点击特定div中的链接,我如何启动一个函数?我想有一个功能开始,如果用户单击任何链接仅在div ID命名为"main_menu"answers"second_menu",但不是在"menu_outside"。

根据您想要做的事情,您可以使用后代[docs]多个[docs]选择器将事件处理程序仅绑定到这些链接:

$('#main_menu a, #second_menu a').click(function() {
    // link inside #main_menu or #second_menu
});

如果您不想对两个事件执行相同的操作,则必须单独绑定事件处理程序。

还可以动态检查链接是否是这些元素的后代,使用closest [docs]:

$('a').click(function() {
    if($(this).closest("#main_menu").length) {
        // inside #main_menu
    }
    if($(this).closest("#second_menu").length) {
        // inside #second_menu
    }
    //...
});

但是这会带来额外的开销。

用这个来选择你想要的div和ahref。

 $('#second_menu a').click(function(){
    // This will select the a href's only in the second menu.
    // basically, in div id "#second_menu" select all "a" elements.
 });