使用 slideToggle() 使容器内的链接工作
Make Link Inside A container With slideToggle() work
我有这个标记:
<ul><li id="link-notifications">
<ul class="list-notifications" style="display:none">
<li><a href="/link/to">Item 1</a></li>
</ul>
</li>
</ul>
有了这个Jquery:
$('#link-notifications').click(function(e){
e.preventDefault();
e.stopPropagation();
$(this).find('.list-notifications').slideToggle('medium');
});
但是每当列表向下滑动,并且我单击链接时,列表就会向上滑动。我听说 stopPropagation 有效,所以我添加了它,但它不起作用。我什至尝试将其添加到 slideToggle 回调中,但它只是停止了 slideUp 操作。 有什么想法吗?
仅将事件click
绑定到#link-notifications
ans 转义其内部内容。
$('#link-notifications, :not("#link-notifications > *")').click(function(e){
e.stopPropagation();
$(this).find('.list-notifications').slideToggle('medium');
});
工作样品
您不需要在该事件中e.stopPropagation()
,而是在单击链接中。
只需添加
$('.list-notifications').click(function(e){
e.stopPropagation();
});
http://jsfiddle.net/N6pYU/1/
HTML
<ul>
<li id="link-notifications">
<a href="#">link-notifications</a>
<ul class="list-notifications">
<li><a href="#">Item 1</a></li>
</ul>
</li>
</ul>
jQuery
$('#link-notifications>a').click(function(event){
$(this).siblings('ul.list-notifications').slideToggle('medium');
});
我不是将事件附加到我想滑动的父母身上,而是与兄弟姐妹联系在一起。这可以防止奇怪的事件冒泡。
小提琴:http://jsfiddle.net/iambriansreed/59e3F/
相关文章:
- 通过链接重定向不;我不在jstree中工作
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- 谷歌公共日历链接没有'不工作(完整日历)
- HTML5 Shiv谷歌CDN链接不工作
- 链接don'由于Javascript悬停效果,无法在移动设备上工作
- 我如何使这个YouTube链接在iOS上工作
- 如何使这个JS链接工作
- JQuery在加载ajax时阻止链接工作
- 内部链接返回空错误,我在 Javascript 中找不到错误.外部链接工作得很好
- 使用 slideToggle() 使容器内的链接工作
- 如何使 jquery 嵌套选项卡链接工作
- JavaScript 函数阻止链接工作
- 一个ui sref链接工作,其余的不工作;t
- 跟踪点击链接不能作为超链接工作
- Ajax加载了页面的一部分——如何使加载的内容中的链接工作
- 我应该在哪里添加JS事件,使我的链接工作
- 如何使链接工作,只有当在文本字段中键入正确的单词时
- 菜单中的斜杠阻止活动链接工作- javascript控制
- 如何使超链接工作在Chrome打包应用程序
- 闪光,如何在不刷新页面的情况下使路由链接工作