我有这段代码:
$(this).css('color', 'red');
if(confirm('Do you want to delete this item?'))
window.location.href = link;
else
$(this).css('color', 'black');
但遗憾的是,在调用confirm()之前,css('color',red)不会执行。如果我使用animate而不是css,并在回调函数中执行confirm(),那么在>>动画实际完成之前执行。
请注意,此问题不会出现在Chrome中,它可以正常工作(对我而言)。
答案 0 :(得分:1)
确认对话框可能会阻止页面在关闭之前进行更新。要避免这种情况,请在打开它之前给浏览器一些时间做一些事情:
var $this = $(this); // in the callback we cannot use `this`
$this.css('color', 'red');
window.setTimeout(function() {
if(confirm('Do you want to delete this item?'))
window.location.href = link;
else
$this.css('color', 'black');
}, 0);
答案 1 :(得分:0)
小超时应该有帮助:
var el = $(this);
el.css('color', 'red');
setTimeout(function() {
if(confirm('Do you want to delete this item?'))
window.location.href = link;
else
el.css('color', 'black');
}, 1);
答案 2 :(得分:0)
这是否适用于if语句:
同意测试人员 - 萤火虫太宽松了。
var $this = false;
if($this = $(this).css('color', 'red')) {
if(confirm('Do you want to delete this item?')) {
window.location.href = link;
} else {
$this.css('color', 'black');
}
}