2016-08-17 51 views
0

我遇到了一個問題,創建一個根據國家名稱更改貨幣的腳本。我已經寫了貨幣更改代碼已經改變了更改功能觸發後的貨幣(現在下面的代碼,我只是寫這裏location.reload()刷新頁面)窗口負載上的無限循環問題

我的問題是,我想窗口加載第一次後根據國家名選擇貨幣,但無限刷新頁面。我只想加載一次頁面。

注:我在這裏寫了剛認識我的變化功能不刷新頁面(在那裏我已經寫了貨幣變化的代碼)

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     $.getJSON("http://freegeoip.net/json/", function (data) { 
     var country = data.country_name; 
     //alert(country); 
     if (country=="Australia"){ 
     $("option[value='AUD']").attr('selected','selected').trigger('change'); 
     } 
     }); 

     //change function 
     $("#edit-selected-currency").change(function(){ 
     location.reload(); 
     }); 

     }); 
    </script> 
</head> 
    <body> 
     <select id="edit-selected-currency" name="selected_currency" > 
     <option value="AUD">AUD</option> 
     <option value="INR" >INR</option> 
     <option value="USD">USD</option> 
     </select> 
    </body> 
</html> 
+0

只是好奇,爲什麼你要重新加載頁面? – ThatAwesomeCoder

+0

我正在重新加載頁面來更改貨幣這就是爲什麼我在這裏只寫頁面刷新代碼不完整的代碼。 – Johny

回答

-1

刪除trigger('change');將解決這一問題location.reload() 。

+0

謝謝,但我已經知道了。我寫的更改函數只在頁面刷新後才起作用,這就是爲什麼我在窗口加載後觸發更改函數的原因。我唯一的問題是那個頁面無限的刷新頁面。 – Johny

0

試試這個:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.getJSON("http://freegeoip.net/json/", function (data) { 
     var country = data.country_name; 
     //alert(country); 
     if (country=="Australia"){ 
     $("option[value='AUD']").attr('selected','selected').trigger('change'); 
//change function 
     $("#edit-selected-currency").change(function(){ 
     location.reload(); 
     }); 
     } 
     }); 



     }); 
    </script> 
0

您可以刪除trigger('change')這是一個解決方案,因爲你是在變化的事件重新加載頁面。

但是,您仍然需要觸發您可以觸發的事件,您可以檢測觸發事件,如下所述。

$(document).ready(function(){ 
    $.getJSON("http://freegeoip.net/json/", function (data) { 
     var country = data.country_name; 
     //alert(country); 
     if (country=="Australia"){ 
      $("option[value='AUD']").attr('selected','selected').trigger('change','triggered'); 
     } 
    }); 

    //change function 
    $("#edit-selected-currency").change(function(e,x){ 
     if(x=='triggered') 
     { 
      // it is from trigger 
     } 
     else 
     { 
      // here x is undefined 
      location.reload(); 
     } 
    }); 

}); 
+0

謝謝,我寫的改變函數只有在頁面刷新後才起作用,這就是爲什麼我在窗口加載後觸發改變函數的原因。我唯一的問題是那個頁面刷新頁面無限時間 – Johny

+0

是的,你的代碼看起來在國家是AUD的時候它會通過你觸發的成功響應中的變化觸發無限的時間。 –

+0

我想在窗口加載後執行更改功能,但只有一次。希望在這裏我有一些道理。 – Johny