jQuery将变量传递给函数

时间:2014-03-26 06:01:43

标签: jquery function variables

我试图将变量传递给在多个文档中被罚款的函数,甚至在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" );
        }

    });
});

2 个答案:

答案 0 :(得分:1)

$.get调用AJAX,变量proceed会在AJAX响应时发生变化,但循环不会等待ajax响应,因为ajax默认设置为async: true

More Info

答案 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); 
  });
}