【问题标题】:Bootstrap Modal buttons do not respond to clickBootstrap 模态按钮不响应点击
【发布时间】:2012-02-24 02:07:07
【问题描述】:

我在模态弹出框中有一匹带有 Bootstraps 按钮的母马。无论我做什么,我都无法触发点击事件。最新的 Bootstrap,jQuery 1.7.1。

在模态框内我有一个带按钮的页脚

<div class="modal-footer">
  <a href="#" class="btn cancelBtn">Cancel</a>
  <a href="#" class="btn dontSaveBtn">Don't Save</a>
</div>

而我的 JS 不工作(从不触发点击)

$("#navigate-away .cancelBtn").on("click", function(event){
  console.log('Click.');
  $('#navigate-away').modal('hide');
});

我可以通过使用悬停而不是单击来证明它有效(悬停触发正常)

$("#navigate-away .cancelBtn").on("hover", function(event){
  console.log('Click.');
  $('#navigate-away').modal('hide');
});

似乎点击事件在内部被吞没了?我看到所有的人都在使用这种精确的方法,没有任何问题。我错过了什么简单的事情?

【问题讨论】:

    标签: javascript jquery twitter-bootstrap


    【解决方案1】:

    这确实与另一个库发生了冲突。调试起来令人震惊,我最终使用 Allan Jardine 的 Visual Event 书签http://www.sprymedia.co.uk/article/Visual+Event 相对简单地得到了它。谢谢艾伦,你救了我的培根。

    【讨论】:

    • 我遇到了同样的问题,但我看不到将可视事件与模态弹出框一起使用。它在页面上运行良好,但是当我激活模式弹出窗口时,Visual Event 停止工作。另外,您的图书馆冲突是什么?
    • 对不起,亚当这是很久以前的事了。我想也许这和重复 ID 一样愚蠢?
    【解决方案2】:

    尝试将 preventDefault 添加到您的点击事件中,并更改为使用 delegate 绑定样式:

    $("#navigate-away").on("click", ".cancelBtn", function(event){
      event.preventDefault();
      console.log('Click.');
      $('#navigate-away').modal('hide');
    });
    

    【讨论】:

    • 唉,这从未达到过......:/它没有执行块的任何部分。困惑。
    • 您确定此取消按钮包含在#navigate-away 中吗?可能选择器没有正确匹配。
    • 另外,当你绑定点击事件时,取消按钮是否真的存在,或者它是稍后创建的?如果稍后创建,您必须将对 .on() 的调用更改为更多 .delegate 样式而不是 .bind 样式。
    • 我可以验证元素的位置是否正确,因为使用悬停而不是单击可以按预期工作。控制台告诉我元素已经渲染但是我不是 JS 忍者,也许它没有完全实例化自己。我会试试 Delegate... 备用呼叫者
    • 要了解我所说的委托风格是什么意思,请参阅我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多