2016-11-15 87 views
-1

我不知道爲什麼會發生這種情況,我正在循環一個數字(Object.size(pagination)),併爲每個數字設置一個onclick事件。點擊其中一個按鈕後,它會迴應最後一個可用的頁碼,而不是我點擊的那個。Onclick for loop

for (var i = 1; i < (Object.size(window.pagination) + 1); i++) { 
    $("#supportTicket_pageNumber").append("<li class=\"\"><a style=\"cursor: pointer;\" class=\"supportTicket_pageNumber_" + i + "\">" + i + "</a></li>"); 
    $(".supportTicket_pageNumber_" + i + "").click(function() { 
    console.log("Page number: " + i); 
    }); 
} 

與數字也得到插入精細的類,https://gyazo.com/92c556117bbd42bb7a16e7832b60af39

+0

更好的解決方案內是這樣的:對於'(VAR I = 0; N = Object.size(window.pagination); I " + (i+1) + "」); ()「(」click「,」。supportTicket_pageNumber「,function(){ } $(function(){ $(document).on(」Page number:「+ $(this).data(」頁面「)); }); })' – mplungjan

+0

謝謝您的回答。 –

+0

我有一些錯別字。請查看 – mplungjan

回答

0

看來你需要創建一個封閉。

包裹它的IIFE

for (var i = 1; i < (Object.size(window.pagination) + 1); i++) { 
    (function(x) { // closure start here 
    $("#supportTicket_pageNumber").append("<li class=\"\"><a style=\"cursor: pointer;\" class=\"supportTicket_pageNumber_" + x + "\">" + x + "</a></li>"); 
    $(".supportTicket_pageNumber_" + x + "").click(function() { 
    console.log("Page number: " + x); 
    }); 
    }(i)) // end here, passing the context of i 
}