我想fadeToggle div container中的所有内容,而不是链接,而不是类to_top的div。但是使用下面的代码,div container传真中的所有内容都可以进行切换。我哪里错了?
这是我的代码:
$("#container").not(".to_top", "a").on('tap', function(e) {
$("#headline").fadeToggle(700);
$("#headline_tap").fadeToggle();
});这是我的html:
<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: <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>谢谢!
发布于 2014-07-20 12:02:30
现在我发现了它:
$("#container").on("tap", function(e) {
var target = $(e.target);
if (!target.is('a')) {
$("#headline").fadeToggle(700);
$("#headline_tap").fadeToggle();
}
});发布于 2014-07-20 08:59:38
你应该这样做:
$('#container :not(".to_top, a")').on('tap', function(e) {
$("#headline").fadeToggle(700);
$("#headline_tap").fadeToggle();
});发布于 2014-07-20 08:59:40
它应该是:
$("#container :not(.to_top,a)").on('tap', ...);您只是将.not()应用于#container DIV,而不是其中的元素。
单击链接时,单击事件会向包含的元素发出气泡。因此,即使事件没有绑定在链接上,它仍然绑定在链接周围的<p>上。为了防止这种情况,需要在禁用传播的排除元素上添加一个处理程序:
$("#container .to_top, #container a").on("tap", function(e) {
e.stopPropagation();
});您还应该在主处理程序中使用stopPropagation。否则,标题只为单击的原始元素切换一次,然后再为其容器切换一次,以此类推。
演示 --我使用的是click而不是tap,所以它可以与普通浏览器一起使用。
https://stackoverflow.com/questions/24848884
复制相似问题