将自定义函数绑定到动态加载的元素

时间:2011-11-10 17:16:39

标签: jquery

我写了一个简单的函数:

function inputChanged()
  {
    $('input').change(function(){
      $(this).addClass('changed');
    });
  }

我正在向div添加动态表单,并希望将函数绑定到添加的表单,我试过这样:

// add a new form on click
$('.addForm').live({
    click: function(e) {
        e.preventDefault();
        $("<div>").load("directory/theform.html", function() {
            $("#theForms").prepend($(this).html());
                    // i am calling the function here...
            $("#theForms form:last").validate().inputChange();
        });
    }
});

这对我不起作用...如何将此函数绑定到动态加载的表单?

4 个答案:

答案 0 :(得分:2)

您可以像这样创建自定义jQuery函数:

jQuery.fn.inputChange = function() {         
    $(this).change(function(){
        $(this).addClass("changed");
    });         
    return this; 
} 

然后你可以像这样使用它:

$("#theForms form:last").inputChange(); 

答案 1 :(得分:1)

将您的第一个功能更改为:

function inputChanged()
{
  $('input').live('change', function(){
    $(this).addClass('changed');
  });
}

或者更好的是,使用jQuery 1.7的新on()方法insteda。

答案 2 :(得分:0)

$(".addForm").live("click",function(e){

});

答案 3 :(得分:0)

你有哪个版本的jquery?

您使用1.4.3中添加的事件映射。见http://api.jquery.com/live/