2014-03-26 15 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

相關問題