2010-08-04 76 views
0

我有以下腳本將一些東西發佈到服務器,並將json結果寫回用戶瀏覽器。它並不如預期:(如何讓jQuery在所有瀏覽器中都一樣?

$(document).ready(function() { 
    $('#productForm').ajaxForm({ 
     dataType: 'json', 
     success: function (response) { 
      var tmp = '<tr>'; 
      tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'>Kasta</a></td>'; 
      tmp += '<td>' + response.Quantity + '</td>'; 
      tmp += '<td>' + response.UnitPrice + '</td>'; 
      tmp += '<td>' + response.ProfitRate + '</td>'; 
      tmp += '<td>' + response.Description + '</td>'; 
      tmp += '<td>' + response.Total + '</td>'; 
      tmp += '</tr>'; 
      $('#productsBody').append(tmp); 
      alternateRows(); 
     }, 
     clearForm: true, 
     resetForm: true, 
     timeout: 3000 
    }); 
}); 

在Firefox中一切都很好,在Chrome瀏覽器中的新行不顯示在所有,但我的一些微小的區域改變顏色的工作。

Internet Explorer 8中我沒有得到該鏈接,它把該鏈接爲普通文本。我會去更多的尖叫和一些希望有人能告訴我爲什麼,當我尖叫回來不起作用。

回答

8

嘗試改變

tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'>Kasta</a></td>'; 

...

tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'">Kasta</a></td>'; 
+0

哎喲,那些有時候是最壞的:) – 2010-08-04 20:51:36

+0

好吧,這可能就是它! – 2010-08-04 20:52:03

+0

發生這種事時我討厭它! – Buggabill 2010-08-04 20:52:36

2

這可能是一個問題<tbody>:瀏覽器附加一個tbody表自動構建,你被你在做什麼突破。不知道,但你可以嘗試圍繞tr圍繞tbody,看看它是否有更好的表現。也許別人有不同的想法。

除此之外,Chrome的「檢查元素」是你的朋友:它應該能夠告訴你標記的哪一部分會出現亂碼。

+0

我會使用檢查元素,就像沒有明天! :) – mhenrixon 2010-08-04 21:02:26

0

不能這樣做。即使你今天可以使用所有瀏覽器今天,它可以很容易地打破明天的瀏覽器與下一個版本。 (假設有一個新版本的jQuery就緒可以修復任何可能的問題,如果沒有的話,我猜你必須等待並容忍一個破損的網站。)

唯一100%肯定的答案是:不要使用JavaScript如果您需要一個一致的平臺進行嚴肅的開發,請使用像Silverlight,Flex或JavaFX這樣的虛擬機解決方案。 JavaScript/AJAX/DHTML應該只用於非關鍵任務的東西,您可以承擔幾天的損失。

相關問題