jquery:将新动态元素绑定到已定义的函数

时间:2012-11-24 18:02:01

标签: jquery function dynamic bind

在我的页面上我有

$(function()
{
  $('.load').click(function()
  { 
  var val =  $(this).attr('value'); //get value of the button that called this function
  //do stuff});
});

和初始html上定义的一些按钮:

<input type="button" value="getData1" class="load" />

如果我稍后在同一个类中添加更多按钮,并希望它们以相同的方式操作,我如何将它们绑定到原始函数?

我在看.on,但它似乎定义了一个新功能。我希望有一种方法可以使用已定义的方法。

或者我应该单独定义该功能并从两个地方调用它?如果是这样,我如何将调用该函数的元素作为参数传递?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

正如您所提到的,这就是on的用途。 On允许您将侦听器附加到包含要监视的元素的文档部分。

$(document).on('click', '.load', function() { 
    var val =  $(this).attr('value');
});

使用document不是最好的,所以理想情况下你会在其中放置一些选择器,它将匹配围绕所有按钮,当前和未来的元素。

调用document后在on内添加的按钮也会触发此处理程序,即使它们稍后已添加。