javascript - jQuery - 延迟 ajax 以便 CSS 转换有时间运行
问题描述
我正在像这样在 jQuery 中使用 Ajax 调用...
$.ajax({
type: 'GET',
url: ajax_url,
data: {
action: 'filter',
},
beforeSend: function ()
{
$('#results').css("opacity" , "0.5");
},
success: function(data)
{
$('#results').css("opacity" , "1");
$('#results').html(data);
},
error: function()
{
/* Display Ajax Error Message */
$("#results").html('<p>There has been an error</p>');
}
});
这运作良好,它在加载时淡出结果,然后在找到它们时淡入它们。
问题是有时,如果只有几个结果,它们会在不透明度转换完成之前返回,目前使用 CSS 将其设置为 0.5 秒。
有没有办法延迟结果,或者确保至少 0.5s 秒已经过去,以便不透明度过渡有时间运行?
解决方案
代替:
$.ajax({
(...)
success: function(data) {
$('#results').css("opacity" , "1");
$('#results').html(data);
},
(...)
});
和:
$.ajax({
(...)
success: function(data) {
var delayTime = 500 // 0.5s in milliseconds
$('#results').css('opacity' , '1');
setTimeout(function() {
$('#results').html(data);
}, delayTime);
}
(...)
});
作为旁注:尝试保持一致并在整个代码中使用相同的“”或“”引号集,这有助于避免错误。
推荐阅读
- vue.js - 在 Sails.js 中使用 vue 作为视图引擎,无需前端
- python - 在 jupyter notebook 上运行远程内核
- python - 如何使用 nlp 标记句子
- r - 来自数据框列的所有可能组合的新列
- r - write.table 中的错误 - 损坏的矩阵 - 暗淡与长度不匹配
- json - 如何在 Angular 7 中提取 JSON 数据并加载到数组中
- ios - 将 adMob 添加到现有的 Firebase 应用程序
- excel - 代码在一张纸上运行(复制和粘贴),但从另一张纸上运行时不执行任何操作
- c++ - 获取嵌套的 JSON 成员而不直接获取每个中间对象
- assembly - 分配后返回不同值的内存地址