JS格式错误:"未捕获的语法错误:意外的令牌")

Ahm*_*ani -2 javascript jquery

因此,我试图为我在我的网站上使用的模态编写一些脚本.我在头文件中应用了这个脚本,这是它运行所需的,这是我在搜索控制台中遇到的错误:

未捕获的SyntaxError:意外的令牌(

这是我的代码:

<script>
  function() {
    $("#modal").on("show.bs.modal", function(e) {
      var link = $(e.relatedTarget);
      $(this).find(".modal-body").load(link.attr("href"));
    });
  };
</script> 
Run Code Online (Sandbox Code Playgroud)

它看起来很好......我可能做错了什么?

T.J*_*der 6

这是一个没有名字的函数声明.函数声明必须具有名称.

你可能认为它是一个IIFE,在这种情况下,在它之前添加()()在最后;:

(function(){
    $("#modal").on("show.bs.modal", function(e) {
        var link = $(e.relatedTarget);
        $(this).find(".modal-body").load(link.attr("href"));
    });
})();
Run Code Online (Sandbox Code Playgroud)

或者如果您打算使用jQuery的"DOM ready"功能,您可能已经打算将该函数传递给它$(),在这种情况下放在$()之前和最后;:

$(function(){
    $("#modal").on("show.bs.modal", function(e) {
        var link = $(e.relatedTarget);
        $(this).find(".modal-body").load(link.attr("href"));
    });
});
Run Code Online (Sandbox Code Playgroud)

这些工作因为函数表达式不必具有名称.当JavaScript解析器期待一个语句并看到时function,它假定它是一个函数声明.但是当它期待一个表达式而不是一个语句时,它知道它是一个函数表达式.