我正在通过 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: ...
这行得通,但是当它真的只需要在加载元素时被调用时,它会在每个焦点上被调用。
最佳答案
使用 jQuery 中的 $.live()
函数。我也有这个问题,但有点困惑。这是它可能如何工作的示例
EDIT $.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
关于javascript - 如何对通过 ajax 添加到页面的元素执行 jQuery 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669348/