【问题标题】:jQuery click event stop propagation can't get to work? [closed]jQuery单击事件停止传播无法正常工作? [关闭]
【发布时间】:2012-02-20 23:15:45
【问题描述】:

我有一个弹出窗口,除非您单击它,否则我不想关闭它,但是每当我单击它时它也会关闭。当您在具有“create-album-container”类的 div 内单击时,它不应关闭

$(document).ready(function() {

////posts menu
$(".container").on("contextmenu", ".photos-bottom .albums li", function(e) {
var id = $(this).attr("id");
e.stopPropagation();
e.preventDefault; 
$('.create-album-container').hide();
$('.photos-bottom .albums li#'+id+' .create-album-container').show();

return false;   
});



$("body").click(function (event) {
     $('.create-album-container').hide();
});

});

【问题讨论】:

  • e.preventDefault 必须被调用

标签: javascript jquery html propagation


【解决方案1】:

应该是e.preventDefault(); - 它是一个函数

你有没有尝试添加

$('.create-album-container').click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});

?

【讨论】:

  • preventDefault 可以正常工作,这是我遇到问题的 stopPropagation 部分。
  • @DylanCross 但是stopPropagation是附加到右键的,和你的问题不完全相关。
  • 我从来没有想过,但是我没有任何成功
  • @DylanCross 那么,您是否尝试阻止左键单击的传播?如果是,那么您的代码是否有指向该页面的链接?
  • 我不确定.stopPropagation() 在您使用委托事件时是否有效:在处理事件时它已经传播到“.container”元素,所以我认为你所能做的就是阻止它进一步向上传播。此外,从事件处理程序返回 false 将自动执行 .preventDefault().stopPropagation()...
猜你喜欢
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多