0

jRails と jRails auto_complete ヘルパーを使い始めたばかりです

http://github.com/evilmarty/jrails_auto_complete

プロトタイプを使用する前にデフォルトの auto_complete ヘルパーを使用していましたが、オートコンプリートの結果にカーソルを合わせる以外は、jRails でドロップインが正常に機能しました。結果に単純なテキストを使用すると、宣伝どおりに機能します。しかし、オートコンプリートの出力を生成するパーシャルでいくつかの div を使用しています。

<li class="location"><div class="image"><img src="/images/flags/<%=h image %>.png"/></div><div class="name"><%=h location.keyword %>,</div><div class="country"> <%=h location.sideinfo %></div></li>

それは同じように見え、すべての CSS が機能し、以前と同じように見えますが、選択または結果の上にカーソルを合わせるとめちゃくちゃになります。テキストの周りの背景にカーソルを合わせた場合にのみ選択できます...タグ内の何か(div、spanなど)により、ホバーが消え、クリックしてもテキストがテキストボックスに追加されません。

他の誰かが同様の問題を抱えていましたか?

4

1 に答える 1

1

少し遅れて知っていますが、今日も同じ問題にぶつかりました。

それはすべて、明らかにautocompleteIndexプロパティを欠いている子オブジェクトからのマウスオーバーイベントバブリングに要約されます(これはLI要素にのみ割り当てられます。したがって、ポインタが子の1つに重なると、ハイライトは消えます。

私は次のようにjrails_autocomplete.jsを変更することになりました:


    onHover: function(e) {
        var my_index = e.target.autocompleteIndex;
        if (!my_index) {
          my_index = $(e.target).closest('li').attr('autocompleteIndex');
        }
        if (this.index != my_index) {
            this.index = my_index;
            this.render();
        }
        stopEvent(e);
    },

ここで、mouseoverイベントを発生させた要素でautocompleteIndexプロパティが見つからない場合は、タイプ'li'の最も近い親を調べ、そこに存在するものをすべて使用します。

少しハックですが、少なくとも私にとってはうまくいきました。

ちなみに、onClickもくすぐる必要がありました。または、マウスをクリックしてDIV要素を押すと、インデックスが失われました。実は、そもそもなぜこれがあったのだろうか、キーボードのインターフェースにも似たようなものが含まれていない。


        onClick: function(e) {
            /*this.index = e.target.autocompleteIndex;*/
            this.selectEntry();
            this.hide();
        },
于 2010-09-07T17:01:09.477 に答える