在 javascript 循环中声明变量 每次点击都会为声明的变量分配相同的值

declaring variable in a javascript loop every click will assign same value to the declared variable

在 javascript 循环中声明变量,每次点击都会为声明的变量分配相同的值,我想在每次点击按钮时递增 track_load

function loadmore() {

    var track_load = 1; //total loaded record group(s)
    var loading = false; //to prevents multipal ajax loads
    var total_groups = 5; //total record group(s)

    if (track_load <= total_groups && loading == false) //there's more data to load
    {
        loading = true; //prevent further ajax loading
        $('.animation_image').show(); //show loading image

        //load data from the server using a HTTP POST request
        $.post('autoload_process.php', {
            'group_no': track_load
        }, function(data) {

            $("#results2").append(data); //append received data into the element

            //hide loading image
            $('.animation_image').hide(); //hide loading image once data is received

            track_load++; //loaded group increment
            loading = false;

        }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?

            alert(thrownError); //alert with HTTP error
            $('.animation_image').hide(); //hide loading image
            loading = false;

        });
    }
}

HTML:

<input type="button" onClick="loadmore()" value="LOAD MORE" class="menu-button">

Declaring variable in a javascript loop...

您没有在循环中声明它。

I want to increment track_load with every button click.

然后将它从 loadmore 函数 移出 ,进入包含 loadmore 函数的范围:

var track_load = 1;
function loadmore() {
    // ....
}

不幸的是,在您的情况下,这将使它成为另一个全局变量。不要使用全局函数(全局命名空间真的很拥挤),而是将您的代码包装在一个作用域函数中,并使用现代技术而不是onxyz属性来连接您的处理程序:

// This goes in a script tag at the bottom of your HTML, just before
// the closing </body> tag

// Scoping function
(function() {
  $(".load-more").on("click", loadmore);
  
  var track_load = 1;
  function loadmore() {
    $("<p>").text("track_load = " + track_load).appendTo(document.body);
    ++track_load;
  }
})();
<input type="button" value="LOAD MORE" class="menu-button load-more">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>