如果带★★★的那句不写括号的,就是下面的情况,只有点击了 元素one 后才激活事件;
<div id="one">aa</div>
<script>
var a = BIANHONG; //★★★★★★★注意这句
$("#one").click(a);
function BIANHONG()
{document.bgColor='red';}
</script>
但是如果加上括号,如下,打开网页就会加载事件,这是什么道理?
<div id="one">aa</div>
<script>
var a = BIANHONG(); //★★★★★★★注意这句
$("#one").click(a);
function BIANHONG()
{document.bgColor='red';}
</script>
不带括号就是点击的时候才会调用函数,如果有括号,那么直接就调用了,不需要点击。
不加括号
$('#one').click(function(){
//doSomething
})
当你点击id为one的元素时才会执行内部语句
加括号相当于你页面加载后立即执行此函数 与点击无关
fn只是定义了函数体 fn()相当于执行了该函数
var a = BIANHONG;
的意思是 把函数BIANHONG 赋值给 a, 此后 可以 a() 和 BIANHONG() 是一样的。
var a = BIANHONG();
的意思是把 函数 BIANHONG 的执行结果赋值给 a。这时候a是BIANHONG执行的结果,a自身不是一个函数。 (这里因为 BIANHONG 没有return 人和东西,a 会是 undefined)
另外你这里面,第二组的方式写是不对的。
你尝试给 a 赋值位 BIANHONG 这个函数的结果,然而此时还没有 BIANHONG的定义(你在下面才定义的)
你需要把 BIANHONG 函数写到更上面一些。。。。
这位兄台看起来对编程也是涉足未深,我劝您回头是岸。