jQuery:Missing)在参数列表之后

时间:2016-03-11 16:39:24

标签: javascript jquery html

获取错误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()更改回function(),那么它会再次开始工作并且错误消失。谁能看到我哪里错了?

如果答案显而易见,刚开始学习JS / jQuery就道歉了。

2 个答案:

答案 0 :(得分:2)

请参阅此fiddle

我认为你试图触发点击加载和点击,它应该调用一个名为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事件。最后一个将等待click事件,然后才会触发该函数。

以下是updated fiddle

答案 1 :(得分:0)

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

你的问题就在这里。具体来说,click(move()。您在此处定义了一个没有function关键字的函数。如果您正在尝试这样做,请将“移动”替换为“功能”,如此;

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

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

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

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