我通过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: ...
这是有效的,但是当它真正只需要在元素的负载上调用时,就会调用每个焦点。
答案 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