2013-08-19 53 views
0

這很奇怪。包括第29行之前的所有代碼都適用。 29行之後的所有代碼都不起作用。我嘗試了控制檯上的第30和31行,他們工作。我嘗試添加一行簡單的代碼,在第29行之前將背景更改爲紅色,並且工作正常。我在第29行之後放置了相同的行,它不起作用。Ajax公式運行在1行後停止工作。

$('#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); 
     } 
    }); 
}); 
+0

你是在談論「slideUp」和「slideDown」? –

+3

控制檯中的任何錯誤? – Brewal

+0

是的,幻燈片和slidedown不工作......並且我的猜測後線29 –

回答

0

看起來像id="shipping-method"(在線30引用)不會在DOM中存在的HTML元素。

試試這個測試 - 插入在第30行:

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

如果您使用的是1驚動,那麼元素存在;如果一個零,那麼該元素不存在。

讓我們知道。

+0

我試過了。兩個警報框都沒有啓動 –

+0

然後將警報框放在第29行之前。如果*那個*彈出,那麼問題就是第29行。然後做同樣的事情,我建議與該行。基本上,每行之前的alert()框會告訴你哪一行有問題,然後使用.length方法會告訴你該控件是否存在於DOM中。您還可以使用Firebug或Chrome開發工具(Ctrl + Shift + i,然後查看元素選項卡)來檢查DOM並親自查看。希望它像打字錯誤一樣簡單... – gibberish