0

ユーザーがドロップダウンメニューを選択したときに、新しく返されたデータを選択タグに追加しようとしています

obj.prototype.getText=function(){
    codes....
    call ajax....

             ajax.callback=function(data){
                   $('#option').append(data);
            }

        }

$('#dropdown').on('change', function(){
    obj.getText()
})

私の問題は、ユーザーがドロップダウンメニューを初めてクリックしたときにのみデータを追加したいということです。ユーザーがドロップダウンメニューをクリックし続ける限り、私のコードは #option に同じデータを追加し続けます...

とにかくこれを修正する方法はありますか?どうもありがとう。

4

4 に答える 4

3

.one()の代わりに使用し.on()ます。イベントを一度トリガーすると、バインドが解除されます。

$('#dropdown').one('change', obj.getText);
于 2012-10-05T02:59:52.740 に答える
1

on change イベントを削除するだけで、トリガーされなくなります。

$('#dropdown').off('change');

「一度実行」コマンドの概念についても調べます。これは私がここで推奨するものではありませんが、今後、知っておくと便利なことです。underscore.jsはうまく機能します

于 2012-10-05T02:58:23.113 に答える
0

ハンドラーをオフにする必要があります。

このようなもの。

$('#dropdown').on('change', function(){
    obj.getText()
    $('#dropdown').off('change');
})
于 2012-10-05T02:57:31.590 に答える
0

それがおそらく最善の方法です。イベント ハンドラーの順番です。

       <input type="hidden" id="hidAleadyAppended" />

一度追加された後、trueに設定します。

このようにして、それが他のコードに既に追加されているかどうかを知る必要がある場合、それは確認するための迅速で信頼できる方法です

于 2012-10-05T02:59:58.313 に答える