本文只讨论JQuery如何手动触发DOM上绑定的事件处理函数,至于如何给DOM绑定事件处理函数,可以参考这篇文章。测试环境是IE11/FF17/Chrome39,JQuery版本是1.11.1和2.1.1都测试过。
下面这段js代码给button绑定了click事件处理函数,第一种是我们最常用的做法;第二种使用了自定义参数。
// 绑定事件的时候不自定义参数
$("#button").bind("click",function(event){
alert("clicked");
});
// 使用自定义参数
$("#button").bind("click",{name:"aty"}, function(event){
alert("params=" + event.data.name);
});
如果我们想手动触发click事件,最常见的做法是通过$("#button").click()来触发,这种做法姑且叫方式一吧。
方式一触发事件有3个特点:
1. 会产生事件冒泡
2. 不会阻止事件在浏览器下的默认行为
3. 触发事件的时候,不能传递自定义参数
JQuery还允许我们使用trigger和triggerHandler手动触发事件,这2种方式有什么差别呢?下面我们来看一下。
1. trigger会触发事件冒泡,而triggerHandler则不会。这一点上trigger与方式一是一致的。<