Javascript 阻止从window.location到子div Jquery
我目前正在使用这段代码,只要我点击div,它就会转到url HTMLJavascript 阻止从window.location到子div Jquery,javascript,jquery,html,Javascript,Jquery,Html,我目前正在使用这段代码,只要我点击div,它就会转到url HTML <div class='gotoPost' data-href='post?i=24'>[text]</div> 问题 现在,我想在容器顶部添加一个绝对定位的div,但只要我点击它。(显示灯箱)它转到url…如何防止它转到url?我想在单击子div时,它不会转到url [文本] 3. 所以你的问题是。。 如果您在JS中使用回调函数,当事件发生时,它将使用“event”对象调用回调函数,该对象包
<div class='gotoPost' data-href='post?i=24'>[text]</div>
问题
现在,我想在容器顶部添加一个绝对定位的div
,但只要我点击它。(显示灯箱)它转到url…如何防止它转到url?我想在单击子div时,它不会转到url
[文本]
3.
所以你的问题是。。
如果您在JS中使用回调函数,当事件发生时,它将使用“event”对象调用回调函数,该对象包含您单击的“e.target”-HTML元素
上面的代码检查单击事件是否直接以“gotoPost”为目标,而不是在HTML元素中。所以这对你有用!:)
ps.签出“使用JavaScript的事件委派”。您需要防止
上的单击事件传播。例如:
$('.ShowLightBox').on('click', function(e){
e.stopPropagation();
// Open light box
});
Ref:您使用的是window.location=
,这当然意味着它将重定向。删除该行就可以了。当您显式地将其设置为window.location
时,这是一个什么问题?但我想要的是,当单击子项时,它不会转到url。因为此子级有另一个函数。请删除window.location=redirect
并使其运行它应该具有的函数谢谢,它有意义,但这一行在我的代码'if(e.target.classList.includes('gotoPost')中不起作用{`你已经测试过了吗?哦,我的错误。不是包含而是包含。我已经编辑了我的答案!最后我使用了你的解决方案,效果很好,谢谢。e.stopPropagation();
很棒的一行!
<div class='gotoPost' data-href='post?i=24'>[text]
<div class=ShowLightBox>3</div>
</div>
<div class='gotoPost' data-href='post?i=24'>
[text]
<div class=ShowLightBox>3</div>
</div>
$(function() {
toUrl = function(e){
if (e.target.classList.contains('gotoPost')) {
var GoToUrl = $(this).data('href');
var redirect = GoToUrl;
window.location = redirect;
}
}
});
$(function() {$(".gotoPost").on('click', toUrl);});
$('.ShowLightBox').on('click', function(e){
e.stopPropagation();
// Open light box
});