Я впервые пробовал JSFiddle в Safari. Есть ли какая-то глупая причина, по которой 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
UPDATE:
Я пробую это во всех других браузерах, нахожу различное поведение во всех них. Это делает именно то, что предполагается в 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>");
}
});
});
Обновлен 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");
});
});