除了一个div,我想选择整个身体。或者也许有人更了解如何解决我的问题。
我想点击“cs-dropdown”点击切换,然后如果有人在身体的任何地方点击它,就会隐藏它。问题是“cs-dropdown”在我用“cs-dropdown”打开它之后就在体内。点击我关闭它然后点击身体。谢谢你的帮助。
$(".cs-dropdown").click(function () {
$(".customer-service-dd").toggle();
});
$("body").click(function () {
if($(".customer-service-dd").is(":visible") == true)
{
$(".customer-service-dd").toggle();
}
});
答案 0 :(得分:1)
我想你想要这样的东西:
How do I use jQuery to select all children except a select element
$('body').not('#theItemYouDontWant');
我只是在猜测=)
答案 1 :(得分:1)
使用 stopPropagation()
阻止事件冒泡到身体:
$(".cs-dropdown").click(function (ev) {
ev.stopPropagation();
$(".customer-service-dd").toggle();
});
答案 2 :(得分:0)
变化:
$("body").click(function () {
if($(".customer-service-dd").is(":visible") == true)
{
$(".customer-service-dd").toggle();
}
});
要:
$("body").live('click', function () {
if($(".customer-service-dd").is(":visible") == true)
{
$(".customer-service-dd").toggle();
}
});
答案 3 :(得分:0)
您点击下拉列表会向上传播到正文,以便调用两个点击处理程序。您可以使用e.stopPropagation()
阻止事件传播。这样就不会调用父元素上相同事件的处理程序。在e.stopPropagation()
点击处理程序中添加.cs-dropdown
:
$(".cs-dropdown").click(function (e) {
e.stopPropagation();
$(".customer-service-dd").toggle();
});