从父 div 中排除选择器

发布于 2025-01-01 15:24:46 字数 354 浏览 1 评论 0原文

我需要在单击页面背景(#page)时触发一个事件(例如隐藏浮动购物车),但在单击内部内容时不会发生此事件。所以我需要这个事件发生在空间:页面减去内容。我该如何实现它?谢谢

如果我有这个结构:

<body>
<div id="page">
   <div id="content">
     here
   </div>
</div>
</body>

var outer= jQuery("#page");
jQuery(outer).click(function(){
  jQuery(cos_de_cumparare).toggle();
});

I need to trigger an event (e.g. hide a floating shopping cart) when clicking on the background of the page (#page) but this event not to occur when clicking inside content. So I need this event to occur on the space: page minus content. How do I achieve it? Thanks

If I have this structure:

<body>
<div id="page">
   <div id="content">
     here
   </div>
</div>
</body>

var outer= jQuery("#page");
jQuery(outer).click(function(){
  jQuery(cos_de_cumparare).toggle();
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷迭香的记忆 2025-01-08 15:24:46

您可以检查事件的目标并

var outer= jQuery("#page");
outer.click(function(e){
       //trigger the event only if the target of the click is the page
       if(e.target.id === 'page'){
         alert('click');
       }
});

在此处进行相应的操作 http://jsfiddle.net/wNsd7/

you could check the target of the event and act accordingly

var outer= jQuery("#page");
outer.click(function(e){
       //trigger the event only if the target of the click is the page
       if(e.target.id === 'page'){
         alert('click');
       }
});

fiddle here http://jsfiddle.net/wNsd7/

写给空气的情书 2025-01-08 15:24:46

为此,您可以停止事件在链上传播。

通常的方法是将点击事件附加到子元素并停止从那里传播,这样:

$("#page div").click(function(e){
   e.stopPropagation();
})

这是一个示例< /a>

To do this you can stop the event propagating up the chain.

The usual way to do this is to attach a click event to the child elements and stop propagation from there such that:

$("#page div").click(function(e){
   e.stopPropagation();
})

Here's an example

记忆消瘦 2025-01-08 15:24:46

试试这个并检查 http://jsfiddle.net/qgUjb/4/

$("#page").click(function(event) {
   if(event.target.id == "content") return;
   $("#content").toggle();
});

Try this and check http://jsfiddle.net/qgUjb/4/

$("#page").click(function(event) {
   if(event.target.id == "content") return;
   $("#content").toggle();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文