如何使用jQuery进行后期绑定?

时间:2009-03-13 18:20:05

标签: javascript jquery

我有一个通过XHR引入的表单,我需要能够在其上绑定一个事件,以便提交。我已经下载了jquery.form.js插件。什么是执行后期绑定的最佳方式,以便我可以执行以下操作:

 $(document).ready(function() { 
        // bind 'myForm' and provide a simple callback function 
        $('#myForm').ajaxForm(function() { 
            alert("Thank you for your comment!"); 
        }); 
    }); 

不幸的是,因为当DOM首次填充时表单不可用,所以这不起作用。

**编辑**

我尝试通过XHR检索表单后绑定到表单并且没有太多运气。这是它的外观:

 $.get("foo.php", function(data) { 
    $('#my_form').ajaxForm(function() { 
         alert("Thank you for your comment!"); 
     });
});     

4 个答案:

答案 0 :(得分:2)

jQuery 1.3引入了"Live" events,它将绑定到选择器定义的任何当前和未来元素。

我没有对它们做过任何事情,但你应该做的事情似乎是合理的:

$(document).ready(function() {
    $('form').live("ready",function() {
        alert("Something");
    });
});

不确定准备好的事件在这种情况下是否真的有效,但似乎值得一试。

答案 1 :(得分:1)

我认为你做得不对。我使用jquery表单的方式是:

$('#myform').submit(function(){
 $(this).ajaxSubmit(function(){
  alert('Thanks for your comment');
 });
 return false
});

将表单注入DOM后调用此方法。 另一种方法是使用jquery

中的live绑定
$('#myform').live('submit', function(){
 $(this).ajaxSubmit(function(){
  alert('Thanks for your comment');
 });
 return false
});

您选择的任何方式都必须将此段代码包含在$(document).ready()

答案 2 :(得分:0)

在XHR请求回调上执行绑定。

答案 3 :(得分:0)

在通过XHR加载表单后绑定事件。