如何在动态创建的文本框上设置onfocus?

时间:2012-12-14 21:42:00

标签: jquery autocomplete

我有以下情况,  一个静态文本框和按钮,用于添加更多动态文本框。当用户输入关键字时,我显示建议[jquery autocomplete]。对于静态文本框,autocomplate函数位于document.ready中,而动态文本框位于“onkeypress”中。

在动态文本框中,自动提示工作正常,但问题在于焦点。重点不在于建议下拉。

我试过下面

 function getLocationList(id)
    {

      //  $('.autocomplete').css('background','none repeat scroll 0 0 #B9E5FB');

       $('.autocomplete').autocomplete({ autoFocus: true });//not working

    // Ajax Auto suggestion box.. stuff
      var optionsLocation, b;
      jQuery(function() {
      optionsLocation = { serviceUrl: '/App_Handlers/xxx.ashx',
      minChars: 2,
      delimiter: /(,|;)\s*/,
      deferRequestBy: 0, //miliseconds
      noCache: false,
      width: 300
      };
      b = $("#" +id).autocomplete(optionsLocation);
      });


    }

也试过以下但没有工作

    $('.autocomplete').focus();
            $('.jobCenterArea').blur();

任何建议

3 个答案:

答案 0 :(得分:0)

使用$ .live(),如

  $('.autocomplete').live('focus', function(){
       // callback code here
  });

答案 1 :(得分:0)

以下是有关委派活动的半相关问题:Direct vs. Delegated - jQuery .on()

现在不推荐考虑live,我建议使用on

$(document).on('focus', '.autocomplete', function(e) {
  //insert your code here for the event
});

请注意,在这种情况下,document不是唯一可以绑定的内容。

答案 2 :(得分:0)

通过在将动态文本框添加到html文档

后立即提供以下代码来解决此问题
$('.autocomplete').autocomplete({ autoFocus: true });//not working

// Ajax Auto suggestion box.. stuff
  var optionsLocation, b;
  jQuery(function() {
  optionsLocation = { serviceUrl: '/App_Handlers/xxx.ashx',
  minChars: 2,
  delimiter: /(,|;)\s*/,
  deferRequestBy: 0, //miliseconds
  noCache: false,
  width: 300
  };
  b = $("#" +id).autocomplete(optionsLocation);
  });

感谢大家的i / p's