模拟操作trigger()

2016-11-16  本文已影响40人  Suoz

1.常用模拟

我们平时的click都是通过用户点击才能触发click事件,但是有时候,我们想通过模拟用户操作,来达到点击的效果。比如在用户进入页面后,就会触发click事件,而不需要用户主动去单击。

可以采用trigger()方法来完成模拟操作。

$('#sub').trigger('click');

当页面装载完毕后,就会立刻输出想要的效果。

$('#sub').click();

也可以直接用简化写法click(),来达到同样的效果。

2.触发自定义事件

trigger()方法不仅能触发浏览器支持的具有相同名称的事件,也可以触发自定义名称的事件。

比如为元素绑定一个“mClick”的事件

$('#sub').bind("myClick",function(){

$('#test').append("我的自定义事件");

});

$('#sub').trigger("myClick");

3.传递数据

trigger(type,[message]);

第一个参数:触发事件的类型

第二个参数:传递给事件处理函数的附加数据,以数组的形式传递

$('#sub').bind('myclick',function(event,message1,message2){

$('#test‘).append(message1+message2);

});

$('#sub’).trigger('myclick',["hello","world"]);

4.执行默认操作

trigger()方法触发事件后,会执行浏览器默认行为。

比如$('input').trigger('focus');

以上代码不仅会触发input元素绑定的focus事件,还会使得input元素本身得到焦点(这是浏览器的默认行为)

如果只想触发绑定的focus事件,而不想执行浏览器的默认行为,可以使用另一种类似的方法

triggerHandler()方法。

上一篇 下一篇

猜你喜欢

热点阅读