这是我第一次在Safari中尝试使用JSFiddle。有没有一些愚蠢的理由说JSFiddle在Safari 4中无法正常工作?有人报告说Safari 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
更新 我正在所有其他浏览器中尝试这一点,在所有浏览器中找到不同的行为。这完全符合它在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,但我仍然没有得到任何结果,$(文件).ready&amp; .change()甚至不在Safari 4中执行。
更新#2 为了进一步澄清,这个Jquery代码不能在JSFiddle / safari 4.0.5中运行。我甚至没有收到警报,所以.change()没有运行......
$(document).ready(function(){
$("#productSize").change(function(){
alert("Hello World");
});
});
答案 0 :(得分:2)
尝试使用jsFiddle JSLint按钮 - 它会显示一些我认为会导致显示问题的错误。
答案 1 :(得分: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>");
}
});
});
答案 2 :(得分:0)
在我看来,JSFiddle和Safari 4.0.5存在限制。我甚至无法让最简单的选择器工作并启动一个非常简单的绑定。
This适用于我尝试的每个浏览器(FF多个版本,IE 7&amp; 8,Chrome 12.0.x和Safari 5.1)。如果有人能解释为什么我喜欢听到它,否则我只是假设这是Safari 4或JSFiddle中的一个错误。无论哪种方式,我都会转向更新的浏览器。