在前端页面开发中,我们有时候希望能自定执行一些人性化操作,比如鼠标不用点击自动就能点击等操作,利用传统的js语言需要编写复杂的代码才能实现此功能,这时候我们使用jquery的trigger()方法就能轻松实现.
trigger方法的功能是在所选择的元素上触发指定类型的事件,其调用的语法格式为:trigger(type,[data]),其中参数type为触发事件的类型,参数data为可选项,表示在触发事件时,传递给函数的附件参数.下面来举例说明下.
页面中创建一个文本框,并给文本一个默认值,当该页面加载时,自动获取文本框的值,显示在页面中,同时文本框处于选中状态 .实现代码如下:
[javascript] view plain copy
$(function(){
var oTxt=$("input")//获取文本框
oTxt.trigger("select")//自动选中文本框
oTxt.bind("btn_click",function(){
//自定义事件
var txt=$(this).val()//获取自身内容
$("#div").html(txt)//显示在页面中
})
oTxt.trigger("btn_click")//自动触发自定义事件
})
方法:
可以使用jQuery的trigger() 方法来响应事件。
定义和用法:
trigger() 方法触发被选元素的指定事件类型。
语法:
$(selector).trigger(event,[param1,param2,...])
参数描述:
event 必需。规定指定元素要触发的事件。可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。
[param1,param2,...] 可选。传递到事件处理程序的额外参数。额外的参数对自定义事件特别有用。
实例:
触发 select元素的change事件:
$("button").click(function(){
$("select").trigger("change")
})
trigger( event, [data] )
在每一个匹配的元素上触发某类事件。这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个’submit’,则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。
也可以触发由bind()注册的自定义事件
$("p").click( function (event, a, b) {// 一个普通的点击事件时,a和b是undefined类型
// 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"])
triggerHandler( event, [data] )
这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作.
如果对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发绑定的动作:
<BUTTON id=old type=submit>.trigger("focus")</BUTTON><BUTTON id=new type=submit>.triggerHandler("focus")</BUTTON><BR><BR>
<INPUT value="To Be Focused" type=text>
<SCRIPT>
$(function(){
$("#old").click(function(){
$("input").trigger("focus")
})
$("#new").click(function(){
$("input").triggerHandler("focus")
})
$("input").focus(function(){
$("<span>Focused!</span>").appendTo("body").fadeOut(1000)
})
})
</SCRIPT>