Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决在尝试调用JavaScript函数时出现的未捕获引用错误_Javascript - Fatal编程技术网

如何解决在尝试调用JavaScript函数时出现的未捕获引用错误

如何解决在尝试调用JavaScript函数时出现的未捕获引用错误,javascript,Javascript,我有一个C#MVC Web应用程序,并试图组织我的java脚本。自从从视图中移动下面的JavaScript并将其添加到文件夹后,在FireFox中调试时,我一直收到一个“未捕获的引用错误AddArtister”。当脚本包含在网页上时,它运行良好 我将jquery和脚本引用为: <head> <script src="/Scripts/jquery-lib/jquery-1.10.2.js"></script> <script src=

我有一个C#MVC Web应用程序,并试图组织我的java脚本。自从从视图中移动下面的JavaScript并将其添加到文件夹后,在FireFox中调试时,我一直收到一个“未捕获的引用错误AddArtister”。当脚本包含在网页上时,它运行良好

我将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);

下面是脚本:

<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);
(函数(){
$(函数(){
艺术家;
return AddArtist=function(){
var addDiv,artistVal;
addDiv=$(“#艺人名称”);
artistVal=$(“#artistinput”).val();
$(“”+artistVal+“”)。附录(addDiv);
返回false;
};
});
}).打电话(这个);
*这是我的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>

@LabelFor(m=>m.Artists,新的{@class=“col-lg-2控制标签”})
@TextBoxFor(m=>m.Artists,新的{placeholder=“artistname”,@class=“form control”,id=“artistinput”})
@Html.ValidationMessageFor(m=>m.Artists)
@*试验*@

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

var AddArtist= function() {
      var addDiv, artistVal;
      addDiv = $("#artistname");
      artistVal = $("#artistinput").val();
      $(" <div id=\"artistname2\"><label>" + artistVal + "</label> /div>").appendTo(addDiv);
      return false;
    };
var AddArtist=function(){
var addDiv,artistVal;
addDiv=$(“#艺人名称”);
artistVal=$(“#artistinput”).val();
$(“+artistVal+”/div>”)。附录(addDiv);
返回false;
};

只需添加到加法器答案

(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();
(函数(){
this.AddArtist=函数(){
警报(“在此呼叫”);
var addDiv,artistVal;
addDiv=$(“#艺人名称”);
artistVal=$(“#artistinput”).val();
$(“”+artistVal+“”)。附录(addDiv);
返回false;
};
}).打电话(这个);
AddArtist();

另外

脚本是从cofeescription实际编译的
AddArtist
变量从不离开内部函数的范围。我看不出这个脚本在浏览器中是如何工作的——外部根本不知道这个方法。由于它是编译的CoffeeScript代码,您可能想向我们展示该代码。只是一个更正。这个问题中的脚本是使用cofeescript编译的,并没有包含在这项工作的2个功能中。谢谢我使用CofeeScripts创建JavaScript。出于某种原因,它将上述脚本包装在一个函数中