$(function(){
$("#btn4").click(function(){
$("#btn3").click();
});
});
function change(){
alert("onclick");
}
dd
ee
区别:
1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么。
click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,就会触发onclick事件。如上诉代码所示,当点击'ee'按钮时,会触发'dd'的onclick事件(正常来说得按'dd'按钮才触发'dd'的onclick事件),原因就是因为
$("#btn4").click(function(){
$("#btn3").click();
2.click()方法的主要作用是触发调用click方法元素onclick事件。此外,如果在click方法定义了如下代码
$("#btn3").click(function(){
alert("*****");
click方法中的function代码会在onclick事件执行完后执行,此时click方法起到追加事件的作用。实例如下:
$(function(){
$("#btn3").click(function(){
alert("aa");
});
});
function change(){
alert("bb");
}
dd
至于为什么文档里(body标签里)要加括号,而js代码里却不用,大概原因有两种解释:
第一种:
document.body.onclick = fun;
document.body.onclick = fun();
二、下面讨论一下行内添加事件监听的情况。
onclick=”fun()”
document.body.onclick = fun();
下面用实验证明上面的结论:
1. 代码一的运行结果是:点击后弹出框“1”
<div style="width:500px;height:500px;background: red;" onclick="alert('1')")></div>
<div style="width:500px;height:500px;background: red;" onclick=eval("alert('1')")></div>
<div style="width:500px;height:500px;background: red;" onclick="1")></div>
<tag onclick="func();">
ele.onclick=function(){func();};
另外,
ele.onclick=func;
——
至于ele.onclick=func();,这真的已经不是写法的区别了,意思都差远了。这时的ele.onclick等于什么,完全取决于func执行时return的结果。
——解释括号里的话之火狐event——
在火狐中,event不是window.event,而是function的第一个参数;此时,
<tag onclick="func();">
ele.onclick=function(event){func();};
<tag onclick="event.preventDefault();">
ele.onclick=function(event){
(event||window.event).preventDefault();
};
——解释括号里的话之上层变量作用域——
<tag onclick="open(title);">
否则上溯document.open、document.title是否存在(据说部分浏览器会不断上溯查找上级父元素中的部分特殊元素,然后才上溯到document),
然后才上溯到window.open、window.title是否存在,
再不存在就报错。
自从学习了with语法,我才明白这种诡异的上溯究竟是怎么回事。
而在js上下文里,function中的变量是谁决定于定义function的位置外面一层层的function包裹,进行上溯。比如:
var top;
(function(){
var parent;
ele.onclick=function(){
var self;
};
})();