Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对通过ajax添加到页面的元素执行jQuery方法?_Javascript_Jquery_Ruby On Rails_Coffeescript_Twitter Bootstrap - Fatal编程技术网

Javascript 如何对通过ajax添加到页面的元素执行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方法。因为它是我正在关注的一个标记,所以我

我通过jQuery通过AJAX请求将表单插入DOM。我正在使用Twitter引导框架提供的typeahead 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方法,该方法运行良好,但感觉效率低下,因为它不需要每次都再次调用。我希望有人能描述如何在每次目标元素加载时只调用该方法一次,但我会将此答案标记为已接受;​