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

发布于 2024-11-27 12:21:32 字数 2199 浏览 1 评论 0原文

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

更新的 JSFiddle 这已经过测试并且可以在 IE、FF、Chrome 中运行,但我仍然一无所获, $(document).ready & .change() 甚至不会在 Safari 4 中执行。

UPDATE #2 为了进一步澄清,这个 Jquery 代码不能在 JSFiddle/safari 4.0.5 中运行。我什至没有收到警报,因此 .change() 没有运行......

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

This is the first time I've ever tried a JSFiddle in Safari. Is there some goofy reason that JSFiddle wouldn't work right in Safari 4? Someone did report that Safari 5 works fine. So what am I missing here?

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 demonstrating problem: jsfiddle

UPDATE:
I'm trying this in all other browsers, finding different behavior in all of them. This does exactly what it's supposed to in Firefox. No problems. IE doesn't seem to like how I'm calling trim() so I've changed the JSFiddle to accommodate that.

$(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 This has been tested and works in IE, FF, Chrome, but still I get nothing, the $(document).ready & the .change() don't even execute in Safari 4.

UPDATE #2
Just to clarify even further, this Jquery code does not run in JSFiddle/safari 4.0.5. I don't even get the alert so the .change() isn't running...

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

_蜘蛛 2024-12-04 12:21:32

尝试 jsFiddle JSLint 按钮 - 它显示了一些错误,我认为这些错误导致了您的显示问题。

Try the jsFiddle JSLint button - it shows a couple of errors which I think are causing your display problems.

葬心 2024-12-04 12:21:32

试试这个

$(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>");
        }
    });
});

Try this

$(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>");
        }
    });
});
未央 2024-12-04 12:21:32

在我看来,JSFiddle 和 Safari 4.0.5 有一个限制。我什至无法让最简单的选择器工作并启动一个非常简单的绑定。

适用于我尝试过的所有浏览器(FF 多个版本、IE 7 和 8、Chrome 12.0.x 、Safari 5.1)。如果有人能解释为什么我很想听听它,否则我只会假设这是 Safari 4 或 JSFiddle 中的一个错误。不管怎样,我都会转向更新的浏览器。

It appears to me that there is a limitation with JSFiddle and Safari 4.0.5. I can't get even the simplest selectors to work and kick off a very simple binding.

This works in every browser I've tried (FF multiple versions, IE 7 & 8, Chrome 12.0.x, & Safari 5.1). If anyone can explain why I'd love to hear it otherwise I'm just going to assume this is a bug in either Safari 4 or JSFiddle. Either way I'm moving onto more current browsers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文