0

リストの最後の項目が「追加」ボタンであるオートコンプリートがあります。これにはカスタムの「選択された」アクションが必要であり、.autocomplete の外部で定義したいのは、それが特殊なケースであるためです。

オートコンプリートでリスト項目の選択されたアクションを変更する方法はありますか?

$('.my-autocomplete').autocomplete({
   select: function(event, ui) {
      // do stuff
   }
   ... // more settings
});

オートコンプリートは上記のように定義されていますが、「add」クラスを持つすべてのリスト項目で何か違うことをしたいです。上記のコードでクラスをチェックしたくありません。これは特別なケースであり、この 1 つのページだけのためです (一方、上記のコードはサイト全体のすべてのオートコンプリートに適用されます)。

4

1 に答える 1

0

オートコンプリートのソースを見ると、それを行うための既存のメカニズムがないように見えました。

一般的なコードに特殊なケースを散らかしたくないというあなたの希望は理解できますが、これらの特殊なケースを処理するための一般的なメカニズムはどうですか? (つまり、オートコンプリートがすぐに実行できるようにしたいことを自分で実行します)

「「追加」クラスを持つリスト項目」について話しているので、これを正確にどのように行っているのかわかりません。データ ソースのオブジェクトではなく、html 要素を操作していることを暗示しているため、申し訳ありません例があなたの状況に当てはまらない場合。

私が意味するものの例:

function special_handler(event, data) {
    // do special stuff
}

var source = [{value: 'Normal item'}, {value: 'Special item', customselect: special_handler}];

$('.my-autocomplete').autocomplete({
    select: function(event, data) {
        if(data.item.customselect) {
            data.item.customselect(event, data);
        } else {
            // do normal stuff
        }
    },
    source: source
    ... // more settings
});
于 2012-08-01T22:17:14.030 に答える