JSFiddle在Windows上的Safari 4.0.5中无法正常工作

时间:2011-08-02 13:55:21

标签: javascript jquery html safari jsfiddle

这是我第一次在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");
    });
});

3 个答案:

答案 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中的一个错误。无论哪种方式,我都会转向更新的浏览器。