0
在Chrome或Safari中使用它时可以正常工作,但在Internet Explorer中不起作用。在Chrome中,点击按钮几乎可以立即改变按钮。但是当你点击IE中的按钮时,状态会改变(在数据库中),但不会显示。刷新页面(F5)时,您会看到该按钮已更改。按钮不会在Internet Explorer中更新
现在我在Internet Explorer中发现了另一个问题。在旧版本中只加载第一个按钮。然后其他按钮不显示。当然,它在其他浏览器中也可以工作。
我在创建按钮的页面上创建了一个div。然后使用以下脚本:
// JavaScript Document
function checkStatus(data, user) {
var result = null, scriptUrl = "../../templates/template/php/status.php?data="+data+"&user="+user;
jQuery.ajax({
url: scriptUrl,
type: 'GET',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
return result;
}
function setButton(data, user) {
var status = checkStatus(data, user);
if (status==='1') {
jQuery("#button" + data).removeClass("btn-primary").removeClass("btn-danger").addClass("btn-success").attr('value', 'aanwezig');
}
if (status==='0') {
jQuery("#button" + data).removeClass("btn-primary").removeClass("btn-success").addClass("btn-danger").attr('value', 'afwezig');
}
}
function changeStatus(data, user) {
var status = checkStatus(data, user);
if (status==='1') {
//afmelden
var scriptUrl = "../../templates/template/php/afmelden.php?data=" + data +"&user="+user;
jQuery.ajax({
url: scriptUrl,
type: 'GET',
dataType: 'html',
async: false,
success: function() {
setButton(data, user);
}
});
}
if (status==='0') {
//aanmelden
var scriptUrl = "../../templates/template/php/aanmelden.php?data=" + data + "&user="+user;
jQuery.ajax({
url: scriptUrl,
type: 'GET',
dataType: 'html',
async: false,
success: function() {
setButton(data, user);
}
});
}
}
function showButton(data, user) {
//set a button
jQuery("#" + data).replaceWith("<input type='submit' value='none' class='btn btn-primary' id='button" + data + "' />");
setButton(data, user);
jQuery("#button" + data).click(function() {
changeStatus(data, user);
});
}
IE与jQuery,AJAX或CSS不兼容。这很可能是浏览器,而不是你的代码,因为它在其他浏览器中工作。尽管如此,仍有一些解决方法可以使IE能够使用jQuery。 – 2014-10-31 12:51:11