2014-03-26 14 views
0

我试图将一个变量传递给一个函数,因为它在几个文档中被罚款,甚至在StackOverflow中这里,但是当我定义它时......它不起作用......如果我在该函数正常工作之前将该变量设置为true。它正在进入应该定义的部分继续进行,因为它提醒我......但它不会改变变化我知道这个超时没有任何延迟每个循环的执行,不介意那。 :P没有删除它。jQuery将变量传递给一个函数

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

超时需要调用的函数 -

setTimeout(function(){ 
    yourFunction(token,link); 
}, 3000); 

function yourFunction(token,link){ 
    $.get("lhc/link.php?link=" + link + "&a=q", function(data) { 
        $('#' + token).html(data); 
    }); 
} 
+0

感谢您的输入。是的,我想通了,将$ .get放入继承变量并让它返回true或false。范围在手。很好的阅读。 – WASasquatch

1

$.get被调用AJAX,变量proceed将改变AJAX响应时,但循环不会等待Ajax响应,因为在AJAX默认设置async: true

More Info

相关问题