5

最近、jquery uiとそのオートコンプリートプラグインを更新しましたが、新しいバージョンでは、マウスクリックでオプションを選択できず、上下の矢印を使用する必要があります。マウスクリックで選択を再度有効にするにはどうすればよいですか?

ところで、新しいバージョンは1.9.1、古いバージョンは1.8.2でした

4

3 に答える 3

4

私の場合、マウス選択機能は古いサードパーティのjQueryプラグインによって無効にされていました。このスレッドは私に何が間違っているのかについての考えを与えました:http://forum.jquery.com/topic/autocomplete-click-to-select-item-not-working-in-1-9-1

古いバージョンのjquery検証プラグイン(https://github.com/jzaefferer/jquery-validation)を使用していました。プラグインを次々と無効にして、どのプラグインが誤動作を引き起こしているかを確認しました。

于 2013-01-24T09:17:30.397 に答える
1

1.11.4の時点で利用可能な最新バージョンのjquery-uiを使用しても、同じ問題が発生しました

ファイルjquery-ui.jsのソースコードを確認すると、次のような部分が見つかりました。

"click .ui-menu-item": function( event ) {
                    var target = $( event.target );
                    if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
                        this.select( event );

                        // Only set the mouseHandled flag if the event will bubble, see #9469.
                        if ( !event.isPropagationStopped() ) {
                            this.mouseHandled = true;
                        }

問題は、mouseHandledvarがに設定されていることtrueです。eventただし、伝播が停止されていない場合にのみ発生します。

解決策として、オートコンプリートを次のように定義しました。

$('.autocomplete').autocomplete({
  source: ['value1','value2','value3','value4'], //my source
  select: function(event, ui){
    event.stopPropagation(); //the select event will work next time you click
    //your logic comes here ...
  }
})

それは私のために働いた、私はそれがあなたのために働くことを願っています!=)

于 2015-12-01T12:59:56.400 に答える
0

最新バージョンではこれが修正されています。

http://jqueryvalidation.org/からjquery.validate.jsの最新バージョンに更新するだけです。たとえば、MicrosoftのAjax CDNをダウンロードします(ホットリンクを歓迎します) http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.js

于 2014-11-26T21:36:57.833 に答える