当它在Chrome或Safari中使用时,它可以正常工作,但在Internet Explorer中,它不起作用。在Chrome浏览器中,单击该按钮几乎会立即更改。但是,当您单击IE中的按钮时,状态会更改(在数据库中),但不会显示。刷新页面(F5)时,您会看到按钮已更改。
现在,我在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中遇到ajax缓存问题。
您可以通过执行以下操作来禁用ajax缓存,因为您正在使用Jquery:
$.ajaxSetup({ cache: false });
或根据请求禁用
$.ajax({
cache: false,
//other options...
});
该网站还有其他替代方法也可以为您提供帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句