1

モーダル パネルの選択ボックスの変更時。ajax リクエストを発行していますが、モーダル パネル データの読み込みはレスポンスに依存します。

最初は、最初の試行で 1 つのリクエストしか発生していません。しかし、選択オプションの回数が増えるにつれて増加し続けます。

以下は私のスクリプトです

$(".dds").msDropDown();
$('#dropdown').off('change');
$('#dropdown').on('change', takeAction);

function takeAction(event){
event.preventDefault();
var colour = $('#colors .selected').attr('data-color');
console.log(colour);
new Ajaxinator().jsonPost({
    url :$(event.currentTarget).val(),
    data : {
        name : $(event.currentTarget).attr('title'),
        colour : colour
    },
    success: function (response)
    {   
    $('#dropdown').off('change');

    $('#Data').html(response.Data);
    $('#dropdown').off('change',takeAction);

}
});

};

これは、新しいバインディングが #dropdown 用に作成しているすべての ajax リクエストと onchange 関数が複数回呼び出されているためだと考えています。誰でも私を助けることができますか?

4

2 に答える 2

0

使った

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

私のために働いた。

于 2013-10-15T16:45:53.740 に答える
0

これを試してもらえますか?

var oAJAXRequest = false; //GLOBAL VARIABLE

$("#dropdown").unbind('change');
$("#dropdown").bind('change', takeAction);


function takeAction(){

    if(oAJAXRequest != false){
      return;
    }

    event.preventDefault();
    var colour = $('#colors .selected').attr('data-color');
    oAJAXRequest = $.ajax({
        type: 'POST',
        url: $(event.currentTarget).val(),
        data : {
          name : $(event.currentTarget).attr('title'),
          colour : colour
        },
        success: function(data) {
            $('#Data').html(response.Data);
            oAJAXRequest = false;
        },
        error: function(jqXHR, sMessage, oException) {
            oAJAXRequest = false;
        }
    });
}
于 2013-10-15T05:53:21.267 に答える