【问题标题】:jQuery Autocomplete focus fired multiple timesjQuery自动完成焦点多次触发
【发布时间】:2018-08-09 07:06:22
【问题描述】:

我很难弄清楚为什么outter focus 事件会被多次触发。每次我单击该输入字段时,事件都会一次又一次地触发。

$(document).ready(function() {
  $(document).on('focus', '.aSuggest', function(event) {

    var aTags = [
      "ask",
      "always",
      "all",
      "alright",
      "one",
      "foo",
      "blackberry",
      "tweet",
      "force9",
      "westerners",
      "sport"
    ];

    $(this).autocomplete({
      source: aTags,
      minLength: 0,
      delay: 500,
      focus: function(event, ui) {
        console.log("focus");
      },
      select: function(event, ui) {
        console.log("select");
      },
      open: function() {
        console.log("open");
      },
    }).focus(function(event) {
      console.log("outter focus");
    });
  });
});

我想做什么:

我想在输入字段的焦点事件中初始化自动完成。每当输入字段具有值和松散焦点然后输入字段将再次获得焦点时,自动完成的结果应该再次打开。 我知道该怎么做,但问题是,该事件被多次触发。

JSFiddle

https://jsfiddle.net/xbjmae8c/10/

有人可以帮帮我吗?

【问题讨论】:

    标签: jquery autocomplete


    【解决方案1】:

    问题解决了....

    $(document).ready(function() {
        var $aSuggestAutocomplete;
    
        $(document).on('focusin', '.aSuggest', function(event) {
        console.log('focusin');
        if (this.value) {
            console.log('autocomplete search triggered from .aSuggest');
            $aSuggestAutocomplete.autocomplete("search", this.value);
        }
      });
    
      $(document).on('focus', '.aSuggest', function(event) {
    
        var aTags = [
          "ask",
          "always",
          "all",
          "alright",
          "one",
          "foo",
          "blackberry",
          "tweet",
          "force9",
          "westerners",
          "sport"
        ];
    
        $aSuggestAutocomplete = $(this).autocomplete({
          source: aTags,
          minLength: 0,
          delay: 500,
          focus: function(event, ui) {
            console.log("focus");
          },
          select: function(event, ui) {
            console.log("select");
          },
          open: function() {
            console.log("open");
          },
        })/*.focus(function(event) {
          console.log("outter focus");
        });
        */
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多