如何通过ajax在添加到页面的元素上执行jQuery方法?

时间:2012-05-19 22:39:20

标签: javascript jquery ruby-on-rails coffeescript twitter-bootstrap

我通过jQuery通过AJAX请求将表单插入DOM。我正在使用Twitter Bootstrap框架提供的typeahead jQuery函数进行实时搜索,当input元素进入DOM时,我想将它附加到输入字段。要做到这一点,我需要在输入字段上调用typeahead方法,但我无法弄清楚如何实现这一点(初始页面加载除外)。

我如何监听要添加到DOM的输入字段并在那时调用它们的jQuery方法?

更新

我的问题不够具体。如果每个元素加载到DOM中只调用一次jQuery方法,我想知道的是什么。由于它是我正在关注的<input />标记,因此我决定每次在项目上有焦点事件时调用该方法。

$("#your_div").on "focus", "input[name='your_name_here']", (event) ->
  $(this).typeahead
    source: ...

这是有效的,但是当它真正只需要在元素的负载上调用时,就会调用每个焦点。

1 个答案:

答案 0 :(得分:2)

在jQuery中使用$.live()函数。我也有这个问题,但有点混乱。这是一个如何工作的例子 编辑 $.live()已过时,我已编辑了我的答案,感谢下面的评论之一,以使用更新的$.on()功能。

$("div").on("form.html",function(data){
    //Blah Blah
    });
});
$(function(){
    ("divthatloaded").on("listener",function(){ //By listener I mean click, hover, mouseon, etc...
    //Does stuff to it...
    });
});

真的,只需使用$.on和适当的侦听器/回调来使用由ajax加载的div