2010-08-04 2 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 
    }); 
}); 

В светлячок все хорошо, в хроме новая строка не отображается на всех, но я некоторые крошечные область меняет цвет.

В Internet Explorer 8 I не получите ссылку, он рассматривает ссылку как обычный текст. Я пойду кричать немного и надеюсь, что кто-то может сказать мне, почему это не работает, когда я вернусь от крика.

ответ

8

Попробуйте изменить

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

к ...

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

ouch, это худшие иногда :) –

+0

Хорошо, это наверное! –

+0

Ненавижу, когда это случается! – Buggabill

2

Это может быть <tbody> вопрос: браузеры добавляет символ tbody в таблице создает автоматически, что вы нарушаете тем, что вы делаете. Не уверен, но вы можете попробовать обернуть tbody вокруг tr и посмотреть, будет ли он вести себя лучше. Может быть, у кого-то другая идея.

Кроме этого, «Inspect Element» Chrome является вашим другом: он должен быть в состоянии рассказать вам, какая часть разметки искажена.

+0

Я буду использовать контрольный элемент, как будто не было завтра! :) – mhenrixon

0

Это невозможно. Даже если вы заработаете со всеми браузерами сегодня, он может легко ломаться в завтрашнем браузере со следующими выпусками. (Предположим, что есть новая версия jQuery, которая исправляет любые возможные проблемы, если не я думаю, вам придется подождать и просто терпеть сломанный сайт.)

Ответ на 100%: Не используйте JavaScript для серьезной разработки, если вам нужна согласованная платформа, используйте решение VM, такое как Silverlight, Flex или JavaFX. JavaScript/AJAX/DHTML следует использовать только для не критически важных вещей, которые вы можете себе позволить в течение нескольких дней.

Смежные вопросы