2013-02-19 107 views
0

這裏是一個javascript將在edit-panes-delivery-delivery-country選項列表更改後運行,幾個選項將追加到$(「select [id^=' edit-panes-delivery-delivery-zone']「),但ajax也會在edit-panes-delivery-delivery-country選項列表發生變化時運行,所以ajax動作將會覆蓋javascript的結果。延遲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運行

+0

您可以隨時使用'的setTimeout()'。 – ATOzTOA 2013-02-19 02:37:47

+0

你看過'延遲()' - http://stackoverflow.com/questions/8401308/jquery-delay-function – 2013-02-19 02:39:41

回答

0

試試這個:

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

function myHandler(){ 
    // do everything here 
} 
0

將你的代碼移動到一個單獨的JS函數中,並用setTimeout在jQuery代碼中,替換alert(「Hello」)。本例中的計時器爲3000毫秒或3秒。

setTimeout(yourFunctionNamehere,3000);