2012-02-06 69 views
0

所以即時在bigcartel上創建一個商店,我想添加一個免費的交付選項。但他們目前不允許你將它添加到spercific國家。我目前正在添加編碼來顯示一個div,或者在用戶總數超過85英鎊時提醒用戶,他們選擇英國作爲他們的目標。在字段值上創建一個無限循環

ATM我認爲我的代碼不會循環..以及它似乎不是:/ 我需要它循環,以便它在客戶添加或減少項目時檢查總價格的值.. whicvh會+或 - 總金額。

我有

var amount = {{ cart.total }} ; 
var country = {{ store.country | country_select }}; 

t=setTimeout("checkprice()",10); 

function checkprice() 
    { 
if(amount >= 85 || country = 45) 
{ 
    alert('OVER 85!') ; 

    } 
    else 
    { 
alert('monkeys') 
    } 
} 

編輯! 08 /月/ 12

的建議通過@kolink:我想出了這個,,,

//----get variables-- 
var amount = {{ cart.total }}; 
var moose = document.getElementById("country"); 

    function freedel() 
    { 
     if (moose = 42 || amount >= 85) 
    { 
     document.getElementById("moose").style.visibility='visible';  
    } 
      else 
    { 
     alert('WRONG!') 
     } 
     } 

的HTML之中:

 <div id="moose" style="visibility:hidden;"> dfgsdgfdsg</div> 

<h3 id="cart_price" onChange="freedel()">{{ cart.total | money_with_sign }}</h3> 
+3

你是對的,它不會循環 - 在代碼中沒有任何循環 – 2012-02-06 19:24:06

+1

爲什麼不直接設置它檢查每當用戶增加或減少任何東西,而不是試圖循環 – Henesnarfel 2012-02-06 19:25:51

+0

不僅如此,但它的功能,你必須每次更新購物車總數或國家變化時調用它 – zero 2012-02-06 19:29:15

回答

1

你告訴它檢查頁面加載後10毫秒的價格,然後你永遠不會告訴它再次運行。

如果你的代碼工作,它會顯示警報,然後又一個10毫秒後(這是沒有足夠的時間來解決問題)。

您應該做的是將checkprice();添加到您的代碼中,無論您更新cart.totalstore.country。也許一個onChange事件可以幫助你。

作爲一個方面說明,永遠不要使用setTimeout中的字符串。通過函數本身(即setTimeout(checkprice,10);)或一個匿名函數(setTimeout(function() {checkprice();},10);)代替

+0

我目前已將此.. '// ----獲取變量 - var amount = {{cart.total}}; var moose = document.getElementById(「country」); 功能freedel() { 如果(駝鹿= 42 ||金額> = 85){ 的document.getElementById( 「駝鹿」)style.visibility = '可見的'。 } 其他 { 警報( '錯了!') } }' 檢查上面的代碼休息 – 2012-02-07 08:41:28