gpt4 book ai didi

javascript - 为什么 .on ('click' , 'a' ) 不执行 e.stopPropagation();在 anchor 选择器上?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:44 26 4
gpt4 key购买 nike

我正在尝试停止传播附加了点击事件的 div 中所有 anchor 的事件,但只有 .click jquery 函数触发 e.stopPropagation() ;.on('click', 'a', function()); 不要。

有效的代码示例,单击 anchor 时不会触发 div 上的单击

<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>

<script>
$('.clickedA').click(function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>

无效的代码示例,点击 anchor 会同时触发点击、 anchor 本身和 div

<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>

<script>
$('.clickedDiv').on('click', 'a', function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>

最佳答案

你应该阻止默认操作,而不是使用 e.preventDefault(),应该是:

$('.clickedDiv').click(function(e) {
e.preventDefault();

var url = $(this).data('url');
window.location.href = url;
}

注意:不需要其他点击事件:

$('.clickedDiv').on('click', 'a', function(e) {e.stopPropagation();});

希望这对您有所帮助。

关于javascript - 为什么 .on ('click' , 'a' ) 不执行 e.stopPropagation();在 anchor 选择器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47162397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com