jQuery模拟点击
在某些情况下,我们需要自动执行一些点击事件。比如:一些 tab 一般是通过点击事件来加载不同的数据内容。
而如果要页面加载完直接显示第三个 tab,怎么办呢?此时就需要用到 jQuery 的模拟点击事件。
要用到 jQuery 的 trigger 方法。 如:
$(‘#btn‘).trigger("click");
会自动执行 id 为 btn 的 click 事件。还可以写成:
$(‘#btn‘).click();
而要是执行class的click事件,就可以写成:
$(‘.banner_cta‘).trigger(‘click‘);
其中banner_cta是某个div的class
trigger() 方法不仅可以触发浏览器支持的同名事件,还可以支持自定义事件。如下:
$(‘#btn‘).bind("myClick", function(){
$(‘#test‘).append("<p>我的自定义事件.</p>");
});
小注:$(‘#XXX‘)或$(‘.XXX‘),表示需要通过jQuery来查找对应的id或class
绑定一个 myClick 自定义事件。
可以通过:
$(‘#btn‘).trigger("myClick");
来触发模拟点击。
trigger() 方法会触发浏览器的默认事件。如下,不仅会执行用户绑定的focus事件,还会执行浏览器的默认focus 事件,使 input 获取焦点。
$("input").trigger("focus");
如果只想执行用户绑定的 focus 事件,而不执行浏览器的默认事件,则可以通过 jQuery 的另外一个方法。triggerHandler() 来实现。
$("input").triggerHandler("focus");
此方法,只会执行绑定的 focus 事件,而取消 浏览器的默认事件。即,只执行focus事件,input 框不会获取焦点。