Ajax公式运行在1行之后停止工作

Ajax formula runs stops working after 1 line.

本文关键字:1行 之后 停止工作 运行 Ajax      更新时间:2023-09-26

这很奇怪。包括第29行之前的所有代码都有效。第29行之后的所有代码都不起作用。我在控制台上试了试第30行和第31行,它们都起作用了。我尝试添加一行简单的代码,在第29行之前将背景更改为红色,结果成功了。我把同一行放在第29行之后,结果没用。

$('#button-shipping-method').live('click', function() {
    $.ajax({
        url: 'index.php?route=checkout/shipping_method/validate',
        type: 'post',
        data: $('#shipping-method input[type=''radio'']:checked, #shipping-method textarea'),
        dataType: 'json',
        beforeSend: function() {
            $('#button-shipping-method').attr('disabled', true);
            $('#button-shipping-method').after('<span class="wait">&nbsp;<img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
        },  
        complete: function() {
            $('#button-shipping-method').attr('disabled', false);
            $('.wait').remove();
        },          
        success: function(json) {
            $('.warning, .error').remove();
            if (json['redirect']) {
                location = json['redirect'];
            } else if (json['error']) {
                if (json['error']['warning']) {
                    $('#shipping-method .checkout-content').prepend('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
                    $('.warning').fadeIn('slow');
                }           
            } else {
                $.ajax({
                    url: 'index.php?route=checkout/payment_method',
                    dataType: 'html',
                    success: function(html) {
                        $('#payment-method .checkout-content').html(html); // LINE 29
                        $('#shipping-method .checkout-content').slideUp('slow');
                        $('#payment-method .checkout-content').slideDown('slow');
                        $('#shipping-method .checkout-heading a').remove();
                        $('#payment-method .checkout-heading a').remove();
                        $('#shipping-method .checkout-heading').append('<a><?php echo $text_modify; ?></a>');   
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(thrownError + "'r'n" + xhr.statusText + "'r'n" + xhr.responseText);
                    }
                });                 
            }
        },
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "'r'n" + xhr.statusText + "'r'n" + xhr.responseText);
        }
    }); 
});

看起来DOM中不存在带有id="shipping-method"(在第30行引用)的HTML元素。

试试这个测试——在第30行插入:

alert('Line 30');
var test = $('#shipping-method').length;
alert(test);
alert('Line 33');

如果您收到1警报,则该元素存在;如果为零,则该元素不存在。

让我们知道。