为什么我会得到"意外的令牌("在这里?

时间:2015-12-09 23:45:00

标签: javascript jquery html css

道歉,如果这是我看不到的类型。我的浏览器(Chrome)正在关注以下行

<a class="carousel-link" onclick="function(){jQuery('#coffee-modal').modal('show');}">Book a coffee</a>

并说

  

&#34;意外的令牌(&#34;

但我无法看到任何不匹配的副作用。我知道它被隔离到这一行,因为如果我删除它就会消失。

2 个答案:

答案 0 :(得分:3)

您的onclick属性将隐式(尝试)创建一个函数,如果显式声明,它将如下所示:

function something() {
  function() {jQuery('#coffee-modal').modal('show');}
}

因为function关键字出现在隐含函数隐含的第一个语句的开头,所以解析器期望命名该函数。在名称之前遇到(,所以blammo。

我认为你所拥有的function() { ... }包装几乎肯定是混乱的根源。你不需要它;这是由浏览器为onfoo属性隐式提供的。

答案 1 :(得分:1)

我认为如果你避免使用inline-events会更好。尝试:

<a class="carousel-link">Book a coffee</a>
$('body').on('click', '.carousel-link', function(){
    jQuery('#coffee-modal').modal('show');
})

希望这有帮助。