Jquery事件处理程序函数

Jquery事件处理程序函数,jquery,Jquery,以下两段代码在处理函数方面有什么不同 $("#div").someEvent(function(){ myFunction(); }); $("#div").someEvent(myFunction()); 不同之处在于,第一个函数在发生someEvent时调用myFunction,第二个函数首先调用函数myFunction,并尝试将其返回的值注册为someEvent的处理程序。因此,在第二种情况下,当行$(“#div”).someEvent(myFunction())时调用myF

以下两段代码在处理函数方面有什么不同

$("#div").someEvent(function(){
    myFunction();
});


$("#div").someEvent(myFunction());

不同之处在于,第一个函数在发生
someEvent
时调用
myFunction
,第二个函数首先调用函数
myFunction
,并尝试将其返回的值注册为
someEvent
的处理程序。因此,在第二种情况下,当行
$(“#div”).someEvent(myFunction())时调用
myFunction

正确的方法是执行
$(“#div”).someEvent(myFunction)
,它将仅引用
myFunction
作为事件处理程序。

关于第二个示例 在你给出的第二个例子中

$("#div").someEvent(myFunction());
函数调用的结果被注册为在发生
someEvent
时执行。 因此,当事件被注册时,函数调用发生,其结果被分配到那里

myFunction
是一个在执行时返回函数的函数时,可以使用这种方法

关于第一个例子 您正在注册一个匿名函数,它将在
someEvent
发生时执行

把它放在一起 进一步解释

var myFunctionGenerator = function() {

   return function(){
      myFunction();
   }

}

//case1
$("#div").someEvent(function(){
    myFunction();
});

//case2
$("#div").someEvent(myFunctionGenerator());

在上面的示例中,两个代码示例将执行相同的工作。唯一的区别是,即使在代码执行之后,case2也会将引用保留到函数生成器。

您实际上是指
$(“#div”)。someEvent(myFunction)?你现在可以从人们那里得到关于文字问题的答案,并且假设有打字错误。不,我是指我键入的内容。也许这是不正确的;我只是对jQuery了解不够,不知道这是一个“输入错误”。尽管这回避了一个问题,但我键入的内容在技术上是否可行?
$("#div").someEvent(function(){
    myFunction();
});
var myFunctionGenerator = function() {

   return function(){
      myFunction();
   }

}

//case1
$("#div").someEvent(function(){
    myFunction();
});

//case2
$("#div").someEvent(myFunctionGenerator());