Javascript 如何对通过ajax添加到页面的元素执行jQuery方法?
我通过jQuery通过AJAX请求将表单插入DOM。我正在使用Twitter引导框架提供的typeahead jQuery函数进行实时搜索,我希望在Javascript 如何对通过ajax添加到页面的元素执行jQuery方法?,javascript,jquery,ruby-on-rails,coffeescript,twitter-bootstrap,Javascript,Jquery,Ruby On Rails,Coffeescript,Twitter Bootstrap,我通过jQuery通过AJAX请求将表单插入DOM。我正在使用Twitter引导框架提供的typeahead jQuery函数进行实时搜索,我希望在input元素进入DOM时将其附加到输入字段。为此,我需要在输入字段上调用typeahead方法,但我不知道如何实现这一点(除了在初始页面加载时) 我如何侦听要添加到DOM中的输入字段,并在此时对其调用jQuery方法 更新 我的问题不够具体。我想知道的是,如何在每个元素加载到DOM中时只调用一次jQuery方法。因为它是我正在关注的一个标记,所以我
input
元素进入DOM时将其附加到输入字段。为此,我需要在输入字段上调用typeahead
方法,但我不知道如何实现这一点(除了在初始页面加载时)
我如何侦听要添加到DOM中的输入字段,并在此时对其调用jQuery方法
更新
我的问题不够具体。我想知道的是,如何在每个元素加载到DOM中时只调用一次jQuery方法。因为它是我正在关注的一个
标记,所以我决定在每次项目上有焦点事件时调用该方法
$("#your_div").on "focus", "input[name='your_name_here']", (event) ->
$(this).typeahead
source: ...
这是可行的,但在每个焦点上都被调用,而实际上它只需要在加载元素时被调用。使用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...
});
});
实际上,只需使用
$。在
上,通过适当的侦听器/回调使用由ajax加载的div您是否尝试在ajax请求的回调中调用typeahead
?我没有时间写答案,但请注意,live
已经过时,而且on
功能以比live
更好的方式提供了所需的行为。我将编辑我的答案,你是对的,我已经习惯了生活。它做同样的事情,我相信它可以用同样的方式使用。我还没有弄清楚如何在添加到DOM的typeahead
上只调用一次该方法。我在focus
上调用jQuery-typeahead方法,该方法运行良好,但感觉效率低下,因为它不需要每次都再次调用。我希望有人能描述如何在每次目标元素加载时只调用该方法一次,但我会将此答案标记为已接受;代码>