Сценарий ниже запрашивает службу php, которая возвращает ответ JSON.Кнопки создаются для каждой возвращаемой записи, что позволяет пользователю удалить эту запись из базы данных.Ниже также создана ссылка для обновления данных.
Это все прекрасно работает в IE, Chrome, Safari ... IE (пробовал 8 и 9), однако, имеет странную проблему.
Когда страница загружается, я могу обновить данные, нажав ссылку «обновить».После этого нажатие не дает никакого эффекта, ЕСЛИ Я не открою ту же страницу в другом окне IE, щелкните ссылку в новом окне и вернусь в исходное окно.Затем ссылка «обновить» работает в новом окне ОДИН раз.Затем он превращается в порочный круг.
Ваша помощь приветствуется!
<script type="text/javascript">
function getNew(){
$('#new').remove();
$.getJSON('service.php', function(data) {
var items = [];
items.push('<tr><th>EmplId</th><th>ExternalID</th><th>Name</th></tr>');
$.each(data, function(key, val) {
var indiv = val.toString().split(",");
items.push('<tr>');
var id = indiv[0];
$.each(indiv, function(index, value) {
items.push('<td align="center" id="' + index + '">' + value + '</td>');
});
items.push('<td class="updateButton" align="center" onclick=\'return update("'+id+'")\'>Update</td>');
});
items.push('<tr><td class="refreshButton" align="center" onclick=\'return getNew();\'>Refresh </td></tr>');
$('<table/>', {
'id': 'new',
html: items.join('')
}).appendTo('body');
});
}
function update (emplID){
$.ajax({
url: "service.php?emplID="+emplID,
context: document.body,
success: function(){
$('#new').remove();
getNew();
}
});
}
</script>
</head>
Я все еще отключил кэш, но безрезультатно.ЕДИНСТВЕННЫЙ способ заставить ссылку работать, это открыть ту же страницу в отдельном окне, щелкнуть ссылку и вернуться в исходное окно.Есть ли какое-то решение для этого?
$(".refreshButton").live( "click" , function() { getNewStudents();
$.ajax({
url: "studentService.php?emplID=",
cache: false,
context: document.body,
success: function(){
$('#newStudents').remove();
getNewStudents();
}
});
} );