33

我在模态窗口中有一个按钮:

<button id="submit_btn" class="btn btn-link">Send the invitation</button>

我正在尝试捕获点击:

$('#submit_btn').click(function(event){
    event.preventDefault();
    alert( "GO" ); 
});

我已经读过按钮点击在模态窗口中被吞没,为了防止这种情况,请使用 event.preventDefault()。但这行不通。我无法捕获此按钮的单击事件。

我还缺少什么?

非常感谢任何提示!

4

4 回答 4

76

尝试这个 -

$(document).on("click", "#submit_btn", function(event){
    alert( "GO" ); 
});

或这个 -

$(document).delegate("#submit_btn", "click", function(event){
    alert( "GO" ); 
});

如果你使用的是旧版本的 jQuery,你可能不得不使用 live 方法。

Live 方法(仅在必要时使用)

$("#submit_btn").live("click", function(event){
    alert( "GO" ); 
});

我相当确定上述三种方法之一将解决您的问题。您的事件处理程序不起作用的原因是您的 submit_btn 元素在评估事件处理程序时不存在。我给您的上述 3 个处理程序将处理现在和将来存在的 submit_btn 元素。

/编辑

这是一个有效的jsfiddle - http://jsfiddle.net/GqD4f/8/

/另一个编辑

我使用您在帖子中使用的方法制作了一个 jsfiddle,它可以正常工作 - http://jsfiddle.net/CR3bM/1/

您没有准备好将事件处理程序放入 DOM 中吗?

于 2013-07-03T19:06:49.473 回答
4

这对我有用:

$(document).on("click", "#submit_btn", function(event){
    alert("GO"); 
});
于 2016-10-05T13:25:35.380 回答
1

下面是我对 class( .copy-text) 的处理方式。

Javascript:

$(document).on('click', '.copy-text', function(){
    console.log($(this));
});

模态html:

<div class="modal fade" id="someid" tabindex="-1" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-body">    
      <ul class="list-group"> 
        <li class="list-group-item copy-text">Some text</li>
      </ul>
    </div>
  </div>
</div>
于 2017-04-24T12:54:44.840 回答
0

我刚才有这个问题。

出于某种原因,如果你包装

  $(document).on("click","span.editComment",function(event) {

在其中之一内:

 $(document).ready(function() {

然后由于某种奇怪的原因它没有捕捉到点击。只需删除周围的文件准备好:

 $(document).ready(function() {}

你的代码应该可以工作!

于 2017-06-18T01:25:15.007 回答