【发布时间】:2011-08-09 23:31:41
【问题描述】:
这是我第一次在 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 中运行,但我仍然什么也没得到,$(document).ready 和 .change() 甚至在 Safari 4 中都无法执行。
更新 #2 为了进一步澄清,这个 Jquery 代码不在 JSFiddle/safari 4.0.5 中运行。我什至没有收到警报,所以 .change() 没有运行...
$(document).ready(function(){
$("#productSize").change(function(){
alert("Hello World");
});
});
【问题讨论】:
-
仅供参考 - 它适用于 Windows 7 上的 Safari 5.1
-
它对我使用 Safari 4 没有任何帮助。事实上,除非它是一个非常简单的警报(“hello”),否则我无法让任何 JSFiddles 在 Safari 4 中工作。
-
感谢马特的编辑,但问题不在于代码在 Safari 中不起作用……实际上,如果我只是加载一个页面,它就会起作用。我所追求的是为什么当我在 Safari 4.0.5 的 JSFiddle 中加载相同的代码时不能工作。
-
@brenjt 你在使用 Safari 4.x 吗?
-
@kasdega 啊,我使用的是 5.0,我一定是更新了我的 Safari 并没有意识到。对不起。
标签: javascript jquery html safari jsfiddle