0

这很奇怪。第 29 行之前(包括第 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);
        }
    }); 
});
4

1 回答 1

0

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

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

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

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

让我们知道。

于 2013-08-19T22:18:28.650 回答