我有以下内容:
JS:
$('.home-toggle').click(function() {
scroll();
$('#content twelvecol > a').removeClass('selected-tile');
$(this).addClass('selected-tile');
$('.hidden').hide();
$('.home-container').slideDown();
});
$('.why-toggle').click(function() {
scroll();
$('#content twelvecol > a').removeClass('selected-tile');
$(this).addClass('selected-tile');
$('.hidden').hide();
$('.why-container').slideDown();
});
HTML:
<div id="content" class="container" style="display:none;">
<div class="row">
<div class="twelvecol">
<a href="#" class="home-toggle tile first">
<img class="tile-top" src="images/tile1.png" alt="" />
<img class="tile-bottom" src="images/tile1h.png" alt="" />
</a>
<a href="#" class="why-toggle tile">
<img class="tile-top" src="images/tile2.png" alt="" />
<img class="tile-bottom" src="images/tile2h.png" alt="" />
</a>
<a href="#" class="solutions-toggle tile last">
<img class="tile-top" src="images/tile3.png" alt="" />
<img class="tile-bottom" src="images/tile3h.png" alt="" />
</a>
一旦我点击其中.selected-tile
.tile
,我就应该将其移除。
但由于某种原因,该课仍然留在其他瓷砖中。
可能是什么问题?
答案 0 :(得分:7)
您的选择器中有错误
$('#content twelvecol > a')
应该是
$('#content .twelvecol > a')
// ^ dot
由于后者选择的容器是容器中的顶级子容器,其类为 twelvecol,它本身位于id为content
的元素内。
答案 1 :(得分:1)
您的代码不正确。你遗漏了twelvecol
班的一个点。
修改以下部分,对于单击功能:
$('#content .twelvecol > a').removeClass('selected-tile');
答案 2 :(得分:1)
不仅缺少点,而且还缺少>
。它应该是:
$('#content > .row> .twelvecol > a');
>
仅适用于子元素,而不是孙子。
所以如果你有:
<div id="a">
<div class="b">
<div class="c">
</div>
</div>
</div>
$('#a > .c')
不会引用预期的div。它应该是$('#a > .b > .c')
或$('#a > div > .c')
。
请参阅此处的演示:http://jsfiddle.net/S2JV3/1/