Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery点击处理程序不';无法使用命名函数?_Javascript_Jquery - Fatal编程技术网

Javascript Jquery点击处理程序不';无法使用命名函数?

Javascript Jquery点击处理程序不';无法使用命名函数?,javascript,jquery,Javascript,Jquery,我觉得这是你只有在睡得太少或喝了太多咖啡后才会遇到的问题之一 我有一个元素 <a id="blah" href="#">somethinghere.com</a> 我尝试将函数作为click-handler()附加: 并加载页面,处理程序立即执行-无需任何单击 但是,当我仅使用匿名函数作为处理程序()时: 它很好用 两者都做(): 似乎工作正常,但似乎有点多余 这感觉像是我以前做过1000次的事情-给了我什么 您还可以使用函数对象: var temp=function

我觉得这是你只有在睡得太少或喝了太多咖啡后才会遇到的问题之一

我有一个元素

<a id="blah" href="#">somethinghere.com</a>
我尝试将函数作为click-handler()附加:

并加载页面,处理程序立即执行-无需任何单击

但是,当我仅使用匿名函数作为处理程序()时:

它很好用

两者都做():

似乎工作正常,但似乎有点多余


这感觉像是我以前做过1000次的事情-给了我什么

您还可以使用函数对象:

var temp=function test() {
  alert('hi');
}
$('#blah').on('click', temp);

您还可以使用功能对象:

var temp=function test() {
  alert('hi');
}
$('#blah').on('click', temp);

事件处理程序必须是函数,并且您要将函数的结果传递给它:

$('#blah').on('click', test());
同:

$('#blah').on('click', undefined); //As your funcion doesn't return anything
将其视为一个函数是一个值,您可以执行以下操作:

var myFunction = function() {
    alert("Hi");
}

然后:

$('#blah').on('click', myFunction); //Without invocation!
或者使用匿名函数:

$('#blah').on('click', function() {
    alert("Hi");
});

事件处理程序必须是函数,并且您要将函数的结果传递给它:

$('#blah').on('click', test());
同:

$('#blah').on('click', undefined); //As your funcion doesn't return anything
将其视为一个函数是一个值,您可以执行以下操作:

var myFunction = function() {
    alert("Hi");
}

然后:

$('#blah').on('click', myFunction); //Without invocation!
或者使用匿名函数:

$('#blah').on('click', function() {
    alert("Hi");
});
尝试:

试试:

$('#blah').on('click', test); // your function name only
$('#blah')。在('click',test())上==>
$('#blah')。在('click',test')删除调用。
$('#blah')。在('click',test())上==>
$('#blah')。在('click',test')删除调用。