0

edit-panes-delivery-delivery-country オプション リストの変更後に実行される JavaScript を次に示します。いくつかのオプションが $("select[id^='edit-panes-delivery-delivery-zone'] に追加されます。 ")、ただし、edit-panes-delivery-delivery-country オプション リストの変更時に ajax も実行されるため、ajax アクションは javascript の結果をカバーします。

(function ($) {
  // Original JavaScript code.
    $('#edit-panes-delivery-delivery-country').ready (function() {
        $("#edit-panes-delivery-delivery-country").change(function() {
            if ($("#edit-panes-delivery-delivery-country option[value='156']").attr('selected')) {   

                var myOptions = {
                    949 : '福州 (hkpost only)',
                    951 : '廣州 (hkpost only)',               
                    952 : '昆明 (hkpost only)',
                    956 : '溫州 (hkpost only)',
                    957 : '廈門 (hkpost only)'

                };
                $.each(myOptions, function(val, text) {
                    //alert("added");
                    $("select[id^='edit-panes-delivery-delivery-zone']").append( new Option(text,val) );


                })
            }
        })
    })
})(jQuery);

だから、私の質問は、jquery の実行をたとえば数秒遅らせることは可能ですか?

ps。スクリプトは drupal 7 モジュールで実行されます。drupal 7 での ajax アクションの変更がわからないため、jquery の実行を遅らせることにしました。

4

2 に答える 2

0

コードを別の JS 関数に移動し、jQuery コード内で setTimeout を使用して呼び出し、alert("Hello") を置き換えます。この例のタイマーは 3,000 ミリ秒、つまり 3 秒です。

setTimeout(yourFunctionNamehere,3000);
于 2013-02-19T02:39:11.050 に答える
0

これを試して:

$("#edit-panes-delivery-delivery-country").change(function() {
    setTimeout(myHandler, 5000);
});

function myHandler(){
    // do everything here
}
于 2013-02-19T02:39:58.087 に答える