仅获取您点击的项目

时间:2016-07-20 作者:user3199063

我想在单击菜单项时保存当前的items类id。问题是,当我单击子菜单项时,它会多次运行jQuery,因为items类具有相同的名称。因此javascript会多次发出警报。似乎当父li与子li具有相同的类名时,它将为这两个li运行jQuery代码。如何避免jQuery为父li运行?

html:

<li id="menu-item-2139" class="menu-item">Item 1
    <ul class="sub-menu">
        <li id="menu-item-2151" class="menu-item">Item 2</li>
        <li id="menu-item-2564" class="menu-item">Item 3
            <ul class="sub-menu">
                <li id="menu-item-2567" class="menu-item">Item 4</li>
                <li id="menu-item-2570" class="menu-item">Item 5</li>
            </ul>
        </li>
    </ul>
</li>
jQuery:

jQuery(\'.menu-item\').click(function(){
    var class_id = jQuery(this).attr(\'id\');
    alert(class_id);
});

1 个回复
SO网友:C C

它被称为“事件冒泡”或“事件传播”,解决方案是获取事件对象并使用JSstopPropagation 方法尝试以下操作:

jQuery(\'.menu-item\').click(function(event){
    var class_id = jQuery(this).attr(\'id\');
    event.stopPropagation();
    alert(class_id);
});

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL