1

それは本当に奇妙です。

私が行った Web アプリ (ここを参照) では、無料でホスティングしてくれたcloudant の連中のおかげで、ついにJquery UI Autocompleteウィジェットを実装しました。

バックボーンをフレームワークとして使用しています。

本当に奇妙なのは、Apple OS の CHROME を除いて、すべて (IE9 でさえも!) で動作することです。

私が持っているのは、テキスト入力フィールドをクリックしてもドロップダウン リストが表示されないことです。

別の OS wokrs 上の Chrome (例: win7)。

これは私がウィジェットを実装するために使用するコードです。私が抱えている問題がコードに依存していないと仮定しても、完全を期すために彼女の ejust を報告します。

        $(select).on("click",function(){
            var valori=["ex1", "ex2", "ex3"];
            $(input).autocomplete({
                minLength: 0,
                source: valori,
                focus:function(){
                    },
                select:function(event, ui){

                    var categoria=$(select).attr('value');
                    var valore=ui.item.value;
                    self.model.set({category:categoria, value:valore});
                    //~ console.log(self.model);
                    return true;
                    }
                }).focus(function() {
            $(this).autocomplete("search", "");
                });
            });

- - アップデート - - -

ubuntuで実行されているchromeとmacosxで実行されているchromeを比較しました。

その結果、ubuntu では (body タグを閉じる前に) DOM 要素が作成されますが、macosx では DOM 要素はまったく作成されません。

macosx では onclick イベントがキャッチされないようです。

4

1 に答える 1

0

ここで非常に役立つ投稿を見つけました なぜmac chromeの選択ボックスはクリックイベントに応答しませんか?

基本的には、OSX での chrome のバグです。

@JamWaffles がその回答で説明しているように、「IIRC、クリック イベントは Firefox では機能しますが、Chrome では機能しません。最適で最もサポートされているイベントは変更です。」そして、それは完全に真実であることが判明しました!!

したがって、私のwebappの作業コードは次のとおりです。

$(select).change(function(){//**************CHANGE AND NOT ON('CLICK', ...  *******
        var valori=["ex1", "ex2", "ex3"];
        $(input).autocomplete({
            minLength: 0,
            source: valori,
            focus:function(){
                },
            select:function(event, ui){

                var categoria=$(select).attr('value');
                var valore=ui.item.value;
                self.model.set({category:categoria, value:valore});
                //~ console.log(self.model);
                return true;
                }
            }).focus(function() {
        $(this).autocomplete("search", "");
            });
        });

この答えが他の誰かに役立つことを願っています。

于 2012-10-17T13:30:48.863 に答える