我试图将变量传递给在多个文档中被罚款的函数,甚至在StackOverflow上也是如此,但是当我定义它时...它不起作用...如果我设置了在函数之前变量为true它工作正常。并且它正在进入应该定义的部分继续进行,因为它提醒我......但它并没有改变var
我意识到这个超时不会延迟每个循环的执行,更别提了。 :P Haven没有删除它。
var rand = function() {
return Math.random().toString(36).substr(2);
};
$(function(){
$('.lhc').each(function() {
var rawlink = $(this).attr("href");
var link = encodeURIComponent( rawlink );
var token = rand();
var proceed;
$.get( "lhc/link.php?link=" + link + "&a=c", function( data ) {
if ( data == 1 ) {
proceed = true;
alert('true');
} else {
proceed = false;
}
});
if ( proceed ) {
$(this).after( " <span style='font-size:xx-small;'>( Hits: <span id='" + token + "'></span> )</span>" );
setTimeout($.get( "lhc/link.php?link=" + link + "&a=q", function( data ) {
$('#' + token).html(data);
}), 3000);
$(this).attr( "href", "lhc/link.php?link=" + link + "&a=g" );
}
});
});
答案 0 :(得分:1)
$.get
调用AJAX,变量proceed
会在AJAX响应时发生变化,但循环不会等待ajax响应,因为ajax默认设置为async: true
答案 1 :(得分:0)
超时需要调用一个函数 -
setTimeout(function(){
yourFunction(token,link);
}, 3000);
function yourFunction(token,link){
$.get( "lhc/link.php?link=" + link + "&a=q", function( data ) {
$('#' + token).html(data);
});
}