jQuery:缺少参数列表之后的 )

jQuery: Missing ) after argument list

本文关键字:之后 列表 参数 jQuery      更新时间:2023-09-26

Uncaught SyntaxError: missing ) after argument list获取错误。

这是我的代码:

$(document).ready(function(){
    console.log('ready');
    $("#trigger").click(move() {
      alert( "Handler for .click() called." );
    });
  });
  var move = function(){
    $('#box').css({
      'left': '0px',
      'transition': 'all 0.2s ease'
    })
  };

如果我将 .click 中的函数从 move() 更改回函数(),那么它再次开始工作并且错误消失。有人能看出我哪里出错了吗?

刚开始学习JS/jQuery,如果答案很明显,请道歉。

看到这个小提琴

我认为您正在尝试在加载和单击时触发单击,它应该调用一个名为 move() 的函数。为此,您将按以下步骤进行操作

$(document).ready(function() {
  console.log('ready');
  $("#trigger").click(move());
});
var move = function() {
  alert('clicked');
  $('#box').css({
    'left': '0px',
    'transition': 'all 0.2s ease'
  })
};

更新

正如@Sterling和@Jack在他们的评论中提到的那样,改变

$("#trigger").click(move());

$("#trigger").click(move);

因为较早的在加载 DOM 后立即触发 Click 事件。最后一个将等待单击事件,然后仅触发函数。

这是更新的小提琴

$("#trigger").click(move(){
    alert( "Handler for .click() called." );
});

你的问题就在这里。具体来说,click(move().您在此处定义了一个没有函数关键字的函数。如果这是您尝试执行的操作,请将"移动"替换为"功能",如下所示;

$("#trigger").click(function(){
    alert( "Handler for .click() called." );
});

或者创建 move 作为单独的函数,然后调用它;

function move(){
    alert( "Handler for .click() called." );
}
$("#trigger").click(move);