Javascript jQuery函数多次运行

Javascript jQuery函数多次运行,javascript,jquery,Javascript,Jquery,我有一个html文件,其中包含以下代码: <script> $(function () { $("#RadniNalog").click(function () { $("#AdminContent").html(); $("#AdminContent").append("<button class='btn1'>Novi nalog</button><br><br&g

我有一个html文件,其中包含以下代码:

<script>
    $(function () {
        $("#RadniNalog").click(function () {

            $("#AdminContent").html();
            $("#AdminContent").append("<button class='btn1'>Novi nalog</button><br><br>");
            $.ajax({
                type: "GET",
                url: "/RadniNalog/Lista",
                contentType: "application.json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    var htmlToAppend;
                    $("#RadniNalog").addClass("activated");
                    htmlToAppend += "<table>";
                    htmlToAppend += "<tr><th>Broj naloga</th></tr>";
                    $.each(data, function (index, item) {
                        htmlToAppend += "<tr><td>" + data[index].brDok + "</td></tr>";
                    });

                    htmlToAppend += "</table>";
                    $("#AdminContent").append(htmlToAppend);
                },
                error: function () {
                    alert("error");
                }
            });
        });
    });
</script>
正如您所看到的,问题是
未定义的部分。我尝试跟踪它何时发生,并且在我将
追加到div时发生。后来我怀疑每个
循环都有问题,所以我删除了它,它再次显示
未定义的
,然后清空表

那么为什么它要附加未定义的
?出于某种原因,它似乎运行了此函数两次

编辑:我已经声明了
var htmlToAppend=“Something”
,它显示的不是
未定义的
,而是
Something
,但仍然是为什么?

更改此行:

var htmlToAppend;
为此:

var htmlToAppend = "";
这就是为什么在第一次追加之后,它将包含一个空字符串的初始值。(并非如您的示例中所示的未定义或“某物”)

var htmlToAppend=“”


创建变量时需要分配空字符串。稍后使用运算符“+=”。它将文本添加到var htmlToAppend的已有内容。

如果希望它等于空字符串,为什么要将其设置为
未定义
某物
?我不会将其设置为
未定义
,我将其设置为
something
,用于测试目的,以查看它是将该var追加两次还是通过执行
var htmlToAppend,实际上您正在将其设置为未定义<代码>未定义+“foo”
=
undefinedfoo
Oh。是的,我将其设置为
未定义
。为什么它会成为这个问题的裁判呢?因为。。。它就是这么做的?当您尝试对非字符串的内容使用字符串连接时,它将尝试将某物转换为字符串,或将字符串转换为某物,具体取决于某物是什么。
var htmlToAppend = "";