Javascript JS格式错误:";未捕获语法错误:意外标记)“;

Javascript JS格式错误:";未捕获语法错误:意外标记)“;,javascript,jquery,Javascript,Jquery,所以我试图为我在我的网站上使用的模式编写一些脚本。我在标题中应用了这个脚本,这是它运行所需的,这是我在搜索控制台中得到的错误: 未捕获的语法错误:意外标记( 这是我的代码: <script> function() { $("#modal").on("show.bs.modal", function(e) { var link = $(e.relatedTarget); $(this).find(".modal-body").load(link.at

所以我试图为我在我的网站上使用的模式编写一些脚本。我在标题中应用了这个脚本,这是它运行所需的,这是我在搜索控制台中得到的错误:

未捕获的语法错误:意外标记(

这是我的代码:

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

函数(){
$(“#modal”)。on(“show.bs.modal”,函数(e){
var link=$(e.relatedTarget);
$(this.find(“.modal body”).load(link.attr(“href”));
});
};

我觉得没问题……我会做错什么?

这是一个没有名字的函数声明。函数声明必须有名字

您可能希望它是一个,在这种情况下,请在它前面添加
),并在
之前的末尾添加

(function(){
    $("#modal").on("show.bs.modal", function(e) {
        var link = $(e.relatedTarget);
        $(this).find(".modal-body").load(link.attr("href"));
    });
})();
$(function(){
    $("#modal").on("show.bs.modal", function(e) {
        var link = $(e.relatedTarget);
        $(this).find(".modal-body").load(link.attr("href"));
    });
});
或者,如果您想使用jQuery的“DOM就绪”功能,您可能想将该函数传递到
$()
,在这种情况下,将
$(
放在它前面,
放在
前面的末尾;

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

这是因为函数表达式不必有名称。当JavaScript解析器需要一个语句并看到
函数时,它会假定这是一个函数声明。但当它需要一个表达式而不是一个语句时,它会知道这是一个函数表达式。

缩进让其他人更容易读懂你r代码。你也可以。:-)看Rory的编辑。为什么投反对票?我只是想在这里学习。我没有接受过JS或开发方面的任何培训,这些基本上都是我从其他人那里拼凑的代码片段,只是稍微理解了基本概念。然而,在进一步研究之后,我发现Joomla my CMS需要使用jQuery来代替$,这就成功了。在原始代码中将
$
更改为
jQuery
不会成功。但是,是的,一些CMS(Joomla、Wordpress)要求您使用
jQuery
而不是
$
(通常您可以使用任何一种)。所以,结合上面两个建议中的一个,应该是可行的。是的,这是需要改变的。“它现在起作用了,所以它被解决了。”@Ahmegilani:好交易。如果这回答了您的问题(堆栈溢出的工作方式),您可以通过单击旁边的复选标记来“接受”答案,从而将其从未回答问题列表中删除。