【问题标题】:Why does the change of html of a button and redirect not work on iphone?为什么更改按钮的 html 和重定向在 iPhone 上不起作用?
【发布时间】:2015-01-26 10:32:48
【问题描述】:

我在许多浏览器上尝试了以下代码,但它不适用于带有 safari 的 iphone,但它适用于 google chrome for iphone。

jQuery(function($){
    $('.top-link-checkout').attr('href',checkout_url);
    $(".button.btn-cart.btn-prod").click(function(e){
            e.preventDefault();
            var cart_url = $('.top-link-cart').attr('href');
            $(".button.btn-cart.btn-prod").html('<span><i class="fa fa-refresh fa-spin fa-2x add-to-cart-icon"></i>Adding...</span>',
            function(){
                window.location.href = cart_url;
            });
    });
});

在带有 safari 的 iPhone 上,它只是转到 url 而不更改 html。

任何想法如何让它在带有 safari 的 iPhone 上运行。

更新

更改了@rory-mccrossan 建议的代码以添加超时:

$('.top-link-checkout').attr('href',checkout_url);
    $(".button.btn-cart.btn-prod").click(function(e){
            e.preventDefault();
            var cart_url = $('.top-link-cart').attr('href');
            $(".button.btn-cart.btn-prod").html('<span><i class="fa fa-refresh fa-spin fa-2x add-to-cart-icon"></i>Adding...</span>');
            setTimeout(gotocart, 100);
    });
    function gotocart(){
        window.location.href = cart_url;
    };

仍然无法在 iphone safari 上运行。

【问题讨论】:

  • 鉴于html() 没有第二个参数,我不确定这是如何工作的。无论哪种方式,一旦点击发生,您就会重定向。我假设 Safari iOS 的渲染器在发现发出 HTTP 请求后不会更新 UI。 setTimeout() 可能会有所帮助,虽然有点老套。
  • 它有第二个参数...
  • api.jquery.com/html 不,它有一个 getter,或 2 个分别采用单个字符串或函数的 setter。
  • w3schools.com/jquery/jquery_callback.asp。请解释你为什么认为I'm not sure how this is working at all。好的,所以我必须使用 setTimeout()。
  • 并非所有 jQuery 函数都有回调 - 只有那些在队列上操作或异步的函数。 html() 两者都不是。此外,我永远不会将 W3Schools 所说的任何内容称为事实:w3fools.com

标签: jquery ios iphone safari


【解决方案1】:

按钮是否存在?还是以后每个ajax左右加载。 你可以尝试在body上设置click事件,然后触发按钮。 喜欢:

$("body").on('click', ".button.btn-cart.btn-prod", function(e){
        e.preventDefault();
        var cart_url = $('.top-link-cart').attr('href');
        $(".button.btn-cart.btn-prod").html('<span><i class="fa fa-refresh fa-spin fa-2x add-to-cart-icon"></i>Adding...</span>',
        function(){
            window.location.href = cart_url;
        });
});

将函数放入文档就绪函数中可能会有所帮助。

你好,提米

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多