jq模拟操作
1.常用模拟
trigger()
$('#btn').trigger('click');
当页面加载完,点击事件就会完成
上面也可以简写成:$('#btn').click();
2.触发自定义事件
trigger()方法不仅能触发浏览器支持的具有相同名称的事件,也可以触发自定义名称的事件
例:为元素绑定一个‘myClick’的事件
$('#btn').bind('click',function(){
$('#test').append('<p>我是自定义事件</P>')
})
想要触发这个事件,就可以用下面的方法
$('#btn').trigger('myClick');
3.传递数据
trigger(type,[data]);方法有两个参数,第一个参数是触发的类型,第二个参数是要传递给事件处理函数的附加数据,以数组形式传递,通常可以通过传递一个参数给回调函数来区别这次事件是代码触发还是用户触发。
例:
$('#btn').bind('myClick',function(event,message1,message2){//获取数据
$('#test').append('<p>'+message1+message2+'</p>');
})
$('#btn').trigger('myClick',['我的自定义','事件']);//传递两个数据
4.执行默认操作
trigger()方法触发时间后,会执行浏览器默认操作。
$('input').trigger('focus');
以上代码不仅会触发input绑定的focus,也会是input元素本身得到焦点(这是浏览器的默认行为)
如果只想触发绑定的focus事件,而不想执行浏览器默认操作,可以使用jq中另一种方法triggerHandler();
$('input').triggerHandler('focus');
该方法会触发input上绑定的特定事件,同时取消浏览器对此事件的默认操作,即文本框只触发绑定的focus事件,不会的到焦点。