Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止从window.location到子div Jquery_Javascript_Jquery_Html - Fatal编程技术网

Javascript 阻止从window.location到子div Jquery

Javascript 阻止从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,它就会转到url

HTML

    <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
});