JavaScript增量变量未在条件中读取

时间:2014-04-26 11:01:01

标签: javascript jquery if-statement increment

我正在编写一个简单的小JavaScript,并且每次单击一个按钮时基本上会附加一个元素。我还想限制通过计数器和条件语句追加元素的次数。

The Fiddle

守则:

HTML

<p id="moreUpload">click me</p>
<div id="file-uploads"></div>

的JavaScript

var div = "<div class='fileupload fileupload-new' data-provides='fileupload'><span class='btn btn-file'><span class='fileupload-new'>Select file</span><span class='fileupload-exists'>Change</span><input type='file' name='file[]' /></span><span class='fileupload-preview'></span><a href='#' class='close fileupload-exists' data-dismiss='fileupload' style='float: none;'>x</a></div>";
var count = 1;

if (count < 6) {
    $("#moreUpload").click(function () {
        $(div).hide().appendTo("#file-uploads").fadeIn(500);
        alert(count);
        count++;
    });
}

基本上,如果编写JavaScript将允许无限追加,我假设增量不起作用。然而,警报会调出我期望看到的数字。我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试在click函数中移动你的条件,因为在click函数之外,当你单击按钮时它什么都不做,它只在click事件代码中运行:

$("#moreUpload").click(function () {
    if (count < 6) {
        $(div).hide().appendTo("#file-uploads").fadeIn(500);
        alert(count);
        count++;

    }
});

Here is demo

答案 1 :(得分:1)

$("#moreUpload").click(function () {
    if (count < 6) {
        console.log(count);
        $(div).hide().appendTo("#file-uploads").fadeIn(500);
        alert(count);
        count++;
    }
});

DEMO

每次你改变计数变量。但它是在全球范围内。