我在div中有一个textarea。 我希望能够点击叠加层。 但是发生的事情是textarea捕获了点击以及div。
<div id="d" name="d"><textarea id="ta" name="ta">my text</textarea></div>
<script type="text/javascript">
$('#d').click(function(){alert("clicked on div");)};
$('#ta').click(function(){alert("clicked on textarea");)};
</script>
我只想要触发div警报,而不是textarea。
答案 0 :(得分:2)
首先置换末尾括号的顺序以防止javascript错误:
$('#d').click(function(){alert("clicked on div");});
$('#ta').click(function(){alert("clicked on textarea");});
然后我收到两个提醒,请参阅this example。
=== UPDATE ===
事件从上dom元素向下到最低(如果不防止冒泡)。因此,您可以在textarea
之后停止冒泡活动,但是您无法阻止在div
而不是textarea
中获取该活动。您必须更改html元素的顺序(div
和textarea
),然后在return false;
点击处理程序的末尾添加div
或添加{{1 }}。另请参阅我的updated example或我的next example。