1

WordpressプラグインでjQueryオートコンプリートを使用しています。焦点を外したときにajax/オートコンプリートをキャンセルするにはどうすればよいですか? $first_idPHPによって渡され、複数のインスタンスを許可します。

jQuery(document).ready(function ($){

  $("#'.$first_id.'").autocomplete({
    source: function(req, add){
      $.getJSON("'.site_url().'/wp-admin/admin.php?page=church_admin/index.php&action=get_people&callback=?", req,  function(data) {

        //create array for response objects
        var suggestions = [];

        //process response
        $.each(data, function(i, val){
          suggestions.push(val.name);
        });

        //pass array to callback
        add(suggestions);
      });

    },
    select: function (event, ui) {
      var terms = $("#'.$first_id.'").val().split(", ");
      // remove the current input
      terms.pop();
      console.log(terms);
      // add the selected item
      terms.push(ui.item.value);
      console.log(terms);
      // add placeholder to get the comma-and-space at the end
      terms.push("");
      this.value = terms.join(", ");
      $("#'.$first_id.'").val(this.value);
      return false;
    },
    minLength: 3,

  });
});
4

1 に答える 1

0

オートコンプリートがそれを自動的に処理すると思いました。jQueryサイトで提供されている実装例は、フォーカスが他の場所に送信されたときにオートコンプリートが閉じられることを示しています。

正しく閉じるのをブロックするコードがある可能性はありますか?

とにかく、オートコンプリートを手動で閉じることができますが、最初にコードで何が起こっているのかを調査します。

$("#'.$first_id.'").on('blur', function(){
    $("#'.$first_id.'").autocomplete("close");
}

編集

コメントから、オートコンプリートが表示されているときにcssを追加しているようです。オートコンプリートが閉じているときに、次のcloseいずれかでイベントをリッスンすることで、これを削除できます。

$( ".selector" ).autocomplete({
  close: function( event, ui ) {}
});

また

$( ".selector" ).on( "autocompleteclose", function( event, ui ) {} );
于 2013-03-25T00:10:38.650 に答える