2011-08-02 137 views
1

這是我第一次在Safari中嘗試JSFiddle。有沒有一些愚蠢的理由,JSFiddle在Safari 4中無法正常工作?有人報告說Safari 5可以正常工作。那麼我在這裏錯過了什麼?JSFiddle無法在Windows 4.0的Safari 4.0.5上工作

的JavaScript:

$(document).ready(function(){ 
    $("#productSize").change(function(){ 
     var me = $(this); 
     var avail = me.find("option:selected").html().split("-")[1].trim(); 

     $("#quantity option").each(function() { 
      $(this).remove(); 
     }); 

     for(var i=1; i<= avail; i++) { 
      $("#quantity").append("<option>"+i+"</option>"); 
     } 
    }); 
}); 

HTML:

<label>Sizes 
    <select name="item_options[product_size]" id="productSize"> 
     <option value="s">small - 10</option> 
     <option value="m">medium - 1</option> 
     <option value="l">large - 5</option> 
     <option value="xl">extra large - 10</option> 
    </select> 
</label> 
<label>Quantity 
    <select name="quantity" id="quantity"> 
    </select> 
</label> 

的jsfiddle證明問題:jsfiddle

UPDATE: 我在所有的OT嘗試這種她的瀏覽器,在所有這些瀏覽器中發現不同的行爲。這正是它在Firefox中所要做的。沒問題。 IE瀏覽器似乎不喜歡我打電話trim(),所以我已經改變了JSFiddle以適應這一點。

$(document).ready(function(){ 
    $("#productSize").change(function(){ 
     var me = $(this); 
     var myText = me.find("option:selected").text().split("-")[1]; 
     var avail = parseInt($.trim(myText), 10); 

     $("#quantity option").remove(); 

     for(var i=1; i<= avail; i++) { 
      $("#quantity").append("<option value='"+i+"'>"+i+"</option>"); 
     } 
    }); 
}); 

Updated JSFiddle這已經過測試,在IE,FF,Chrome的工作,但我還是什麼也沒得到,在$(文件)。就緒&的.change()甚至沒有在Safari 4

執行

更新#2 只是爲了進一步闡明,這個jquery代碼不會在JSFiddle/safari 4.0.5中運行。我甚至不得到警報所以.change()不運行......

$(document).ready(function(){ 
    $("#productSize").change(function(){ 
     alert("Hello World"); 
    }); 
}); 
+0

僅供參考 - 它適用於Windows 7上的Safari 5.1 –

+3

什麼「不工作」? – Matt

+0

它不會爲我使用Safari 4做任何事情。事實上,我不能讓任何JSFiddles在Safari 4中工作,除非它有一個非常簡單的警報(「hello」)。 – kasdega

回答

0

在我看來,有是的jsfiddle和Safari 4.0.5的限制。我連最簡單的選擇器都無法工作,並啓動了一個非常簡單的綁定。

This適用於我試過的每個瀏覽器(FF多個版本,IE 7 & 8,Chrome 12.0.x,& Safari 5.1)。如果有人能解釋爲什麼我喜歡聽到它,否則我只會假設這是Safari 4或JSFiddle中的一個bug。無論哪種方式,我正在進入更新的瀏覽器。

2

嘗試的jsfiddle JSLint的按鈕 - 它顯示了一對夫婦,我認爲是造成你的顯示問題的錯誤。

+0

對於其他人來說,那些錯誤是什麼? – Sparky

+0

'$(this).remove();' - 這是未定義的。 –

+0

我沒有收到任何JSLint錯誤。 $(這)一個.remove();絕對應該存在。 – kasdega

2

試試這個

$(document).ready(function(){ 
    $("#productSize").change(function(){ 
     var me = $(this); 
     var avail = parseInt(me.find("option:selected").text().split("-")[1].trim()); 

     $("#quantity option").remove(); 

     for(var i=1; i<= avail; i++) { 
      $("#quantity").append("<option value='"+i+"'>"+i+"</option>"); 
     } 
    }); 
}); 
+0

同樣的結果。在Safari 4.0.5的JSFiddle中這樣做的時候我什麼也得不到。 – kasdega