我的问题是:
我选择了一个有很多子元素的 div,想知道如何不选择某个元素,而该元素实际上是该先前选定元素的子元素。
我已经尝试过:not(selectedElement)选择器和.not(selectedElement)选择器或 api(不知道它是如何调用的)。无论如何,我也发现有人问了一个没有帮助的类似问题,所以我想找出问题的唯一方法是在这里问你是否有任何方法(我知道 stackoverflow 并不是那样工作,但我认真地坐了很多次都解决不了):
HTML:
<div class="tablee" style="cursor:/*pointer*/;">
<table>
<tbody>
<tr>
<td>
<a href="something.php">
<img src="1.jpg">
</a>
</td>
<td class="postcontent">
<p class="postusername">
<a class="poster" href="something.php">momo</a>
<br>
some other text
</p>
</td>
<td>
<imgsrc="1.jpg">
</td>
</tr>
</tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery:
//non-dynamyic
$(".tablee").not($(this).find('a')).click(function() {
$(this).next().slideToggle();
});
Run Code Online (Sandbox Code Playgroud)
因此,如果tablee单击而不是其中的链接(tablee元素内),则后面的下一个元素tablee将切换。
首先,您的选择器没有选择所有子项并将单击事件附加到 then。该事件仅在实际选择器上,并且在单击子项时该事件会传播到父项。
您有一个点击事件.tablee,您不想在点击其中的任何内容时触发该事件a。在这种情况下,有一个单独的事件a有stopPropagation: -
$(".tablee").click(function() {
$(this).next().slideToggle();
});
$(".tablee a").click(function(e) {
e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
这将停止任何点击a冒泡到.tablee。
| 归档时间: |
|
| 查看次数: |
2382 次 |
| 最近记录: |