如何处理元素添加到页面的事件?

时间:2014-04-14 06:24:09

标签: javascript jquery coffeescript

我有一个应用程序,点击一个链接会显示一个模态。在模态中是一种形式。我需要监控该表格的提交。

我在我的JS中附加了一个点击处理程序,如下所示:

$('.vex-dialog-form :submit').click (event) ->
    alert "hi"

警告并未触发,我相信它是因为我需要为该模态加载附加某种事件处理程序,然后将提交事件放入其中。

有关如何解决这个问题的任何建议吗?

2 个答案:

答案 0 :(得分:2)

动态添加DOM需要event delegation。使用.on()

 $('.vex-dialog-form').on('click',':submit',function(){
   alert("hi");
 });

如果父动态.vex-dialog-form也是动态添加的,请使用:

 $(document).on('click','.vex-dialog-form :submit',function(){
   alert("hi");
 });

答案 1 :(得分:2)

尝试这种方式:

$(document).on('click', '.vex-dialog-form :submit', function(){
    alert('hi');
});

在这种情况下document正在等待点击,点击后,jQuery会发现你的提交按钮是否被点击