我想选择整个身体除了一个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();
}
});
使用 stopPropagation()
来阻止事件冒泡到body:
$(".cs-dropdown").click(function (ev) {
ev.stopPropagation();
$(".customer-service-dd").toggle();
});
我想你需要这样的东西:
如何使用jQuery选择除select元素之外的所有子元素
$('body').not('#theItemYouDontWant');
我只是猜测=)
变化:
$("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();
}
});
您在下拉菜单上的单击向上传播到正文,以便调用两个单击处理程序。您可以使用e.stopPropagation()
来阻止事件的传播。这样就不会调用父元素上相同事件的处理程序。在.cs-dropdown
点击处理程序中添加e.stopPropagation()
:
$(".cs-dropdown").click(function (e) {
e.stopPropagation();
$(".customer-service-dd").toggle();
});