1

首先让我说我使用的是 JQuery 版本 1.3.2。此时升级不是一种选择。

我有一个在页面加载由模板系统添加的表单。我对 JQuery 很陌生,但我的理解live将允许我访问它。

自动完成功能已经为用户搜索服务并且运行良好。我想为网站的管理部分共享此功能,并且查询几乎相同。

clientName元素来自动态添加的表单。如果我使用下面的代码,什么都不会发生;没有数据被检索。

  $('#clientName')
  .site_clientAutocomplete(
    'admin',
    function( $event, $result, $data )
    {
      $('#clientName').val($data.ClientName);
    }
  );

如果我将它包装在以下代码中,它将起作用。我必须在输入框内多次单击才能从数据库中取回任何内容。

$("#clientName").live('keydown', function(){

});

有人能告诉我如何让这个自动完成功能正常工作吗?

4

1 回答 1

1

live仅用于处理现在或将来与选择器匹配的元素上发生的事件。如果您需要更强大地检测与选择器匹配的元素,您可以在添加内容时应用小部件,也可以使用livequery 插件

使用 livequery,您可以“侦听”与您的选择器匹配的新元素,并在该事件发生时运行一个函数。在你的情况下,这将是这样的:

$('clientName').livequery(function () {
    $('#clientName').site_clientAutocomplete(
        'admin',
        function( $event, $result, $data )
        {
            $('#clientName').val($data.ClientName);
        }
   );
});
于 2013-10-10T21:29:18.297 回答