代码之家  ›  专栏  ›  技术社区  ›  mhenrixon

如何使jQuery在所有浏览器中的工作方式相同?

  •  0
  • mhenrixon  · 技术社区  · 14 年前

    我有以下脚本将一些内容发布到服务器,并将json结果写回用户浏览器。它没有按预期工作:(

    $(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中新行完全不显示,但我看到一些小区域改变了颜色。

    在InternetExplorer8中,我没有得到链接,它将链接视为常规文本。我会再尖叫几声,希望有人能告诉我为什么我尖叫回来后它不起作用。

    3 回复  |  直到 14 年前
        1
  •  8
  •   Drew Wills    14 年前

    尝试改变

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

    到。。。

    tmp += '<td><a href="/Invoice/DeleteProduct/' + response.Id +'">Kasta</a></td>';
    
        2
  •  2
  •   Pekka    14 年前

    <tbody> 问题:浏览器附加 tbody 自动创建一个表结构,表明您正在按所做的操作进行破坏。不确定,但你可以试着包装一个 周围 tr 看看它是否表现得更好。也许其他人有不同的想法。

        3
  •  0
  •   Manius    14 年前

    今天 ,它可以很容易地在未来的浏览器与下一个版本(假设有一个新版本的jQuery ready可以修复任何可能的问题,如果没有的话,我想你只能等待,容忍一个坏网站。)

    唯一100%确定的答案是:不要使用JavaScript进行严肃的开发如果你需要一个一致的平台,使用一个VM解决方案,比如Silverlight、Flex或JavaFX。JavaScript/AJAX/DHTML应该只用于非任务关键型的东西,这些东西你可以承受得起几天的损坏。