我将点击事件传入我的函数,但似乎没有工作?自定义功能不起作用?
$('body').on("click", youclick(event));
function youclick(e){
console.log("testing");
e.stopPropagation();
}
我将点击事件传入我的函数,但似乎没有工作?自定义功能不起作用?
$('body').on("click", youclick(event));
function youclick(e){
console.log("testing");
e.stopPropagation();
}
由于@Rajaprabhu建议。当您使用回调函数(您可以点击(e))时,回调参数(youclick)作为函数名称本身传递,没有参数或者甚至是大括号或大括号。
It means that a reference of the function is passed in the function call.
因为函数是JavaScript的第一类对象,我们可以把 功能,如对象,所以我们可以通过周围的功能,如变量 和函数返回他们在使用它们其他功能。当我们 传递一个回调函数作为另一个函数的参数时,我们是 只传递函数定义。我们没有在参数中执行 函数。我们没有像 执行一个函数那样通过 尾随执行圆括号()的函数。
而且由于包含函数在其参数 中具有回调函数作为函数定义,因此它可以随时执行回调 。这允许我们在包含函数的任何点 处执行回调函数。
请务必注意,立即不执行回调函数 。它在包含函数体内的某个指定的 点处被“回叫”(因此得名)。
$('body').on("click", youclick);
function youclick(e){
console.log("testing");
e.stopPropagation();
}
只是传递function
本身的reference
。而你并不需要通过event
,您可以收到通过global scope
,
尝试,
$('body').on("click", youclick);
function youclick(e){
console.log("testing");
e.stopPropagation();
}
的[为什么在网页加载时立即点击事件处理火?]可能重复(http://stackoverflow.com/questions/7102413/why-does-click-event-handler-fire-immediately -upon页面加载) –