1

我通过 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: ...

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

4

1 回答 1

2

使用$.live()jQuery 中的函数。我也有这个问题,但是有点混乱。这是它可能如何工作的示例
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

于 2012-05-19T23:08:32.757 回答