【问题标题】:jQuery e.stopPropagation Conflict With body onclickjQuery e.stopPropagation 与正文 onclick 冲突
【发布时间】:2016-03-15 04:57:57
【问题描述】:

我有引导下拉菜单。为了让它在点击下拉菜单时继续显示,然后我将它设置为这样的 JavaScript

$('.dropdown-menu').click(function(e)
{
     e.stopPropagation();
});

它有效。那我现在有

$(document).ready(function() 
{
     $('body').on("click",'#btn_post',function(e)
     {
          alert("waw");
     }
});

<button class="btn btn-default" id="btn_post">Click</button>

当我单击按钮时,我看不到警报“哇”。但是当我删除e.stopPropagation(); 时,会出现警报。

我希望这两个函数可以运行而不会发生冲突。

【问题讨论】:

  • 如果这是真的你的代码,按钮的功能没有正确关闭。
  • @Scott 告诉我在哪里?
  • $('body').on("click",'#btn_post',function(e) { alert("waw"); }); 您缺少右括号和分号。

标签: javascript jquery twitter-bootstrap


【解决方案1】:

而不是使用stopPropagation 使用preventDefault 它可能会解决您的问题。

stopPropagation 用于确保事件不会冒泡。例如。点击&lt;td&gt; 标记也会触发其父级&lt;tr&gt; 上的点击事件,然后是其父级&lt;table&gt; 等。stopPropagation 可防止这种情况发生。

preventDefault 用于停止元素的正常动作,例如。 preventDefault 在链接上的单击处理程序中会停止链接被跟踪,或者在提交按钮上会停止提交表单。

更多详情event.preventDefault vs event.stopPropagation

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多