如何在尝试调用JavaScript函数时解决Uncaught引用错误

How to resolve Uncaught reference error when attempting to call a JavaScript function

本文关键字:解决 Uncaught 引用 错误 函数 JavaScript 调用      更新时间:2023-09-26

我有一个C#MVC Web应用程序,正在尝试组织我的java脚本。由于将下面的JavaScript从视图中移动并添加到文件夹中,我在FireFox中调试时不断收到"未捕获引用错误AddArtist"。当它被包含在网页上时,脚本运行良好。

我将jquery和脚本引用为:

<head>
     <script src="/Scripts/jquery-lib/jquery-1.10.2.js"></script>
     <script src="/Scripts/AddArtist.js"></script>
</head>

然后是脚本:

(function() {
      $(function() {
        var AddArtist;
        return AddArtist = function() {
          var addDiv, artistVal;
          addDiv = $("#artistname");
          artistVal = $("#artistinput").val();
          $(" <div id='"artistname2'"><label>" + artistVal + "</label></div>").appendTo(addDiv);
          return false;
        };
      });
    }).call(this);

*这是我的HTML:*

                                    <div id="artist"class="form-group">
                                        @Html.LabelFor(m => m.Artists, new { @class = "col-lg-2 control-label" })
                                        <div class="container">
                                            @Html.TextBoxFor(m => m.Artists, new { placeholder = "Artist name",@class="form-control", id="artistinput"})  
                                            <img onclick="AddArtist()" id="plusartist" src="'Content'bootstrap'img'plus-button.png" class="img-thumbnail"/>
                                            @Html.ValidationMessageFor(m => m.Artists)
                                        </div>

                                        @*<button id="plusartist" onclick="AddArtist()">Test</button>*@
                                    </div>
                                    <div id="artistname"><label></label></div>

在脚本中,AddArtist函数不会导出。我不确定创建AddArtist功能最时尚的方式是什么,但这可能会奏效:

var AddArtist= function() {
      var addDiv, artistVal;
      addDiv = $("#artistname");
      artistVal = $("#artistinput").val();
      $(" <div id='"artistname2'"><label>" + artistVal + "</label> /div>").appendTo(addDiv);
      return false;
    };

仅添加到Adders应答

(function() {      
    this.AddArtist = function() {
        alert("called here");
      var addDiv, artistVal;
      addDiv = $("#artistname");
      artistVal = $("#artistinput").val();
      $(" <div id='"artistname2'"><label>" + artistVal + "</label></div>").appendTo(addDiv);
      return false;
    };
}).call(this);
AddArtist();

也适用于