我有一个带有以下 HTML 的下拉菜单:
<ul id="dropdownmenu" class="dropdown maintopmenu">
<li class="topmenu" link="link0.htm">SELL
<ul>
<li link="link1.htm"><span class="menulink">APPLY TO SELL</span>/li>
<li link="link2.htm"><span class="menulink">FEE/FEATURES</span></li>
<li link="link3"><span class="menulink">FAQ</span></li>
<li link="mycart.php?4"><span class="menulink">IMAGE GUIDELINE</span></li>
</ul>
</li>
</ul>
然后我有一个 jquery 函数,该函数应该在单击时转到页面 link=whatever 。不过,它所做的始终是转到第一个 li 链接(主要父级)。 我的猜测是它忽略了该里内的整个块。
$(function() {
$('li[link]').click(function() {
document.location.href=($(this).attr('link'));
});
});
我需要它与所有级别的子菜单一起使用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可能是因为事件正在冒泡到祖先
并触发其处理程序。
您需要使用
event.stopPropagation()
(docs) 方法或return false;
。Probably because the event is bubbling up to the ancestor
<li>
and firing its handler.You need to stop propagation of the event using the
event.stopPropagation()
(docs) method orreturn false;
.使用 e.stopPropagation();
希望这有帮助
use e.stopPropagation();
hope this helps
我建议不要在 html 中使用奇怪且无效的属性,如果不可避免,请使用 jQuery 创建传统标记,例如:
JS Fiddle 演示。
但我强烈建议使用
a
元素而不是 JavaScript malarkey,特别是因为 JS/jQuery 在没有 JS 的情况下不会很好地退化。I'd suggest not using bizarre, and invalid, attributes for your html and, if that's unavoidable, use jQuery to create traditional mark-up, for example:
JS Fiddle demo.
But I'd strongly suggest using the
a
element instead of the JavaScript malarkey, especially since the JS/jQuery doesn't degrade well in the absence of JS.很简单,在 func 末尾放一个 return false 即可。
它的工作完美!
Simple, put a return false at end of func.
Its works perfectly!