我在下面的问题中看到过一些类似的帖子,但没有一个能够发挥作用。
我有一个'更新'我想在执行ajax查询时隐藏的按钮,并用加载符号替换。成功返回ajax后,我希望恢复正常状态(即按钮显示和符号隐藏)。
这适用于Safari 5.1.10以外的所有浏览器。在Safari中,围绕jQuery hide / shows的所有其他代码执行正常。我也能够隐藏/显示其他元素(在应用程序的其他阶段),如果我将相同的隐藏/显示请求放入onload例程,那么它们工作正常。我很难过。
HTML:
<input id='update' type='button' value='update scores' />
<img id='update_load' src='../images/ajax-load-bar.gif' style='display:none; position:relative; left:35px; top:0px;' />
JQUERY:
function update_ES() {
$("#update").hide();
$("#update_load").show();
....
我可以在Mac OS X(10.6.8)上的Safari 5.1.10以及运行最新iOS 7.1的iPhone上验证这种功能缺乏。我在Windows上的Safari中没有经过同样的验证,但预计会是这样。
详细说明......我使用以下内容将点击功能分配给&#39;更新&#39;:
$('#update').click(function() {
$("#update").hide();
$("#update_load").show();
switch(MC_action) {
case "team":
update_TS();
break;
case "score": case "admin":
update_ES();
break;
}
});
update_TS和update_ES都非常相似,所以我提供update_ES作为两者的指示:
function update_ES() {
//hide button (temporarily) and show loading bar
$("#update").hide();
$("#update_load").show();
scores = gatherScores();
$.ajax({
type: "post",
url: url,
async: false,
data: { scores: scores, MC_action: MC_action, match_id: match_id },
dataType: "json",
success: function(json) {
//do some basic stuff here to process the return
//hide loading bar, show and disable update button
$("#update_load").hide();
$("#update").show();
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
})
}
答案 0 :(得分:0)
尝试更改
$('#update').click(function() {
...
}
到
$('#update').on('click', function() {
...
}