首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery: fadeToggle所有内容,但不是链接和特殊div的

jquery: fadeToggle所有内容,但不是链接和特殊div的
EN

Stack Overflow用户
提问于 2014-07-20 08:54:49
回答 3查看 261关注 0票数 1

我想fadeToggle div container中的所有内容,而不是链接,而不是类to_top的div。但是使用下面的代码,div container传真中的所有内容都可以进行切换。我哪里错了?

这是我的代码:

代码语言:javascript
复制
$("#container").not(".to_top", "a").on('tap', function(e) {
    $("#headline").fadeToggle(700);
    $("#headline_tap").fadeToggle();
});

这是我的html:

代码语言:javascript
复制
<head>
  <script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
  <script src="fileadmin/js/menue.js"></script>
  <script src="fileadmin/js/tap.js"></script>
</head>
<body>
 <div id="menue"></div>
 <div id="headline">
   <div id="menueicon"></div>
 </div>
 <div id="headline_tap">
     <div id="menueicon"></div>
 </div>   
 <div id="container">
    <div id="top">
      <div id="topimage"></div>
    </div>   
    <div id="content">
       <p class="bodytext">...Im Falle der Aktivierung der ...</p>
       <p class="bodytext">Die im Rahmen... dem folgenden Link verfügbare
          Browser-Plugin herunterladen und installieren:&nbsp;<a            
            href="http://tools.google.com/dlpage/gaoptout?hl=de" target="_blank">Link</a>.
      </p>
    <a href="impressum/#top" title="Zum Seitenanfang" class="to_top"><img src="/fileadmin/images/mobile/to_top.png"></a>


 <div id="footer"></div>
 </div>
   <div id="footline"></div>  
</body>

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-20 12:02:30

现在我发现了它:

代码语言:javascript
复制
$("#container").on("tap", function(e) {
  var target = $(e.target);
  if (!target.is('a')) {
    $("#headline").fadeToggle(700);
    $("#headline_tap").fadeToggle();
  }
});
票数 0
EN

Stack Overflow用户

发布于 2014-07-20 08:59:38

你应该这样做:

代码语言:javascript
复制
$('#container :not(".to_top, a")').on('tap', function(e) {  
    $("#headline").fadeToggle(700);
    $("#headline_tap").fadeToggle();
});
票数 1
EN

Stack Overflow用户

发布于 2014-07-20 08:59:40

它应该是:

代码语言:javascript
复制
$("#container :not(.to_top,a)").on('tap', ...);

您只是将.not()应用于#container DIV,而不是其中的元素。

单击链接时,单击事件会向包含的元素发出气泡。因此,即使事件没有绑定在链接上,它仍然绑定在链接周围的<p>上。为了防止这种情况,需要在禁用传播的排除元素上添加一个处理程序:

代码语言:javascript
复制
$("#container .to_top, #container a").on("tap", function(e) {
    e.stopPropagation();
});

您还应该在主处理程序中使用stopPropagation。否则,标题只为单击的原始元素切换一次,然后再为其容器切换一次,以此类推。

演示 --我使用的是click而不是tap,所以它可以与普通浏览器一起使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24848884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档