如何在完成setTimeout后触发我的ajax函数?
我有ajax功能,我希望在我的框显示后尝试触发它我在setTimeout函数内部尝试,它没有正常工作它在settimeout之前和settimeout之后都工作,我只需要在settimeout完成之后触发它或者我告诉它你喜欢这个:
当我的settimeout工作时,我的ajax函数必须
function canliDestekOpen(e) {
var boxDel = $(e).attr("data-delay");
setTimeout(function() {
$(".canli-destek").fadeIn();
/*
$.ajax({
url: "/ajax/showinvite",
method: "post",
success: function(data) {
}
});
*/
}, parseInt(boxDel) * 1000);
}
canliDestekOpen(".canli-destek");
.canli-destek {
display: none;
font-family: sans-serif;
width: 398px;
height: 112px;
border: 2px solid #faa82b;
background: #ccc;
border-radius: 3px;
position: relative;
margin: 0 auto;
}
.canli-destek .canli-destek-inner {
padding-left: 30px;
padding-top: 15px;
position: absolute;
}
.canli-destek .canli-destek-inner span {
margin-right: 20px;
}
.canli-destek h6 {
font-weight: bold;
font-size: 16px;
color: #222222;
}
.canli-destek p {
font-size: 14px;
color: #4e4e4e;
margin-bottom: 6px;
}
.canli-destek button {
background: #012770;
color: #FFF;
font-weight: bold;
font-size: 13px;
text-align: center;
border: none;
padding: 6px 22px;
cursor: pointer;
}
.canli-destek .canli-destek-kapat {
position: absolute;
top: 0;
right: 0;
background: #faa82b;
color: #FFF;
cursor: pointer;
padding: 12px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="canli-destek" data-delay="3">
<div class="canli-destek-inner">
<button data-link="http://www.google.de">Start Conversation</button>
</div>
<div class="canli-destek-kapat">
<span class="ani-icon-error-1 canli-kapat-icon">X</span>
</div>
</div>
答案 0 :(得分:1)
不确定这是否是你想要的
jQuery的.fadeIn
是一个异步函数,这意味着在触发fadeIn
之后将继续执行代码,而无需等待它完成。
如果你想在完成fadeIn
之后调用你的AJAX,那么将它作为函数参数传递给.fadeIn
$(".canli-destek").fadeIn(function (){
$.ajax({
url: "/ajax/showinvite",
method: "post",
success: function(data) {
}
});
});
答案 1 :(得分:0)
我不确定我的回答
数据延迟是否返回字符串或数字?是否从string转换为parseInt?。
试试这个
$( e ).data( "delay" )