trigger和triggerHandler的使用
今天琢磨了好久这个trigger和triggerHandler的用法.在网上搜了好多,不过大都是相互抄袭,毛意思都没有.后来自己做了研究.
trigger:
1.可以用来触发事件.
<input id="guoyansi" value="单击" type="button" />
$(function(){
$("#guoyansi").click(function(){
alert("点我干嘛");
});
//下面的两种情况都可以在页面加载完毕后自动触发
$("#guoyansi").click();
$("#guoyansi").trigger("click"); })
2.可以用来传递参数trigger(typeEvent[,data]);
<input id="guoyansi" value="单击" type="button" />
$(function(){
$("#guoyansi").click(function(e,text){
text=text||"我是click触发的";
alert(text);
});
$("#guoyansi").trigger("click",["我是trigger触发的"]); })
3.传递多个参数:
<input id="guoyansi" value="单击" type="button" />
$(function(){
$("#guoyansi").click(function(e,m1,m2,m3){
var text="";
if(m1||m2||m3) text=m1+","+m2+","+m3;
else text="我是click触发的";
alert(text);
});
$("#guoyansi").trigger("click",["m1","m2","m3"]); })
4.自定义事件.
<input id="guoyansi" value="单击" type="button" />
<input type="text" id="guoTxt"/>
$(function(){
$("#guoTxt").on("myEvent",function(){//给guoTxt自定义一个myEvent事件
alert($(this).val());
});
$("#guoyansi").click(function(){//单击guoyansi按钮时,触发我们的自定义事件
$("#guoTxt").trigger("myEvent");
});
})
5.triggerHandler()的方法在作用上类似于trigger(),但是是有一定的区别的.
1.triggerHandler方法不会引起浏览器默认的行为,而仅仅是执行绑定到focus事件的处理程序.
<input type="button" id="guo" value="trigger"/>
<button type="button" id="yan"value="triggerHandler"/>
<input id="si" type="text" />
$(function(){
$("#guo").bind("click",function(){
$("#si").trigger("focus",["trigger"]);
});
$("#yan").bind("click",function(){
$("#si").triggerHandler("focus",["triggerHandler"]);
});
$("#si").bind("focus",function(e,handler){
if(typeof(handler)=="undefined") handler="用户操作";
$(this).val(handler);
});
})
用谷歌浏览器测试,效果更明显.
单击文本框:
文本框中有光标,并且还有橙色边框.
单击trigger:
效果和单击文本框是一样的.
单击triggerHandler:
只是执行了focus的事件,文本框中没有光标,并且边框也没有变颜色.
2.trigger()对匹配到的所有元素进行操作,triggerHandler()只对第一个元素做处理.
<input type="button" id="guo" value="trigger"/>
<input type="button" id="yan" value="triggerHandler"/>
<input class="si" type="text" />
<input class="si" type="text" />
<input class="si" type="text" />
<input class="si" type="text" />
$(function(){
$("#guo").bind("click",function(){
$(".si").trigger("focus",["trigger"]);
});
$("#yan").bind("click",function(){
$(".si").triggerHandler("focus",["triggerHandler"]);
});
$(".si").bind("focus",function(e,handler){
if(typeof(handler)=="undefined") handler="用户操作";
$(this).val(handler);
});
})
单击trigger按钮:
单击triggerHandler按钮:
3:triggerHandler()方法不会发生冒泡,如果这些事件不被目标元素直接处理,则它什么事情都不做.
<input type="button" id="guo" value="trigger"/>
<input type="button" id="yan" value="triggerHandler"/>
<div class="father" style="width:200px; height:200px; background-color:black;">
<div class="children" style="width:100px; height:100px; background-color:red;"></div>
</div>
$(function(){
$("#guo").bind("click",function(){
$(".children").trigger("click");
});
$("#yan").bind("click",function(){
$(".children").triggerHandler("click");
});
$(".father").click(function(){
alert("你单击了父div");
});
$(".children").click(function(){
alert("你单击了子div");
});
})
因为冒泡,单击了trigger按钮后,会弹出2个弹出框;因为不冒泡单击triggerHandler按钮,只会出现一个"你单击了子div"的弹出框.
3.triggerHandler()不返回jQuery对象,而是返回有这个方法的最后一个处理程序的返回值.如果没有返回值,则默认是undefined.
<input type="button" id="guo" value="trigger"/>
<input type="button" id="yan" value="triggerHandler"/>
<div class="father" style="width:200px; height:200px; background-color:black;">
<div class="children" style="width:100px; height:100px; background-color:red;"></div>
</div>
$(function(){
$("#guo").bind("click",function(){
$(".children").trigger("click").css("background-color","blue");
});
$("#yan").bind("click",function(){
var a=$(".children").triggerHandler("click");
alert(a);
});
$(".father").click(function(){
alert("你单击了父div");
});
$(".children").click(function(){
alert("你单击了子div");
return "我来自triggerHandler的返回值";
});
})
单击trigger后,红色会变成蓝色:
单击triggerHandler,会有返回值.
trigger和triggerHandler的使用的更多相关文章
- 【jQuery】【转】jQuery中的trigger和triggerHandler区别
trigger(event, [data]) 在每一个匹配的元素上触发某类事件. 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器 ...
- JQ中 trigger()和triggerHandler()区别
既然使用了trigger和triggerHandler,那么你应该了解了他们的差别了. trigger():在每一个匹配的元素上触发某类事件. triggerHandler():这个特别的方法将会触发 ...
- Jquery trigger 与 triggerHandler
secying Jquery trigger与triggerHandler trigger: 在每一个匹配的元素上触发某类事件(即触发jQuery对象集合中每一个元素). 这个函数也会导致浏览器同名的 ...
- jquery的trigger和triggerHandler区别
网上关于这个问题都是抄来抄去的,都没怎么说清楚.所以自己做了个测试,供大家参考指教.首先先看API怎么说的 为了检验一下,编写了一个简单的测试代码,如下: <html lang="en ...
- trigger 和 triggerHandler(),自定义事件
trigger 和 triggerHandler(),自定义事件 语法: $(selector).trigger(event,[param1,param2,...]) 1,event 必需.规定指定元 ...
- trigger()和triggerHandler()
trigger()方法触发事件后,还会执行浏览器的默认事件,例如: $('input').trigger("focus); 这一行代码不仅会触发为<input>元素绑定的focu ...
- jQuery中的trigger和triggerhandler区别
$("form :input").blur(function(){ // }).keyup(function(){ $(this).triggerHandler("blu ...
- trigger和triggerhandler的区别
1. trigger会触发默认行为2. trigger会触发所有元素的模拟事件,而triggerHandler只触发一次3. trigger可以链式操作,triggerHandler不能4. trig ...
- 关于jQuery中的trigger和triggerHandler方法的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- mdadm 创建md 删除md步骤
最近在使用mdadm创建和删除RAID设备.但是在创建和删除过程中会出现创建md0重启后变成md127,删除md127重启后又重新出现的状况.在网上搜索了一下,总结如下: 创建: 1. mdad ...
- HDU 1589 Stars Couple(计算几何求二维平面的最近点对和最远点对)
Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- 2.1 Linux中wait、system 分析
wait与waitpid: 当子进程退出的时候,内核会向父进程发送SIGCHID信号,子进程的退出是一个异步事件(子进程可以在父进程运行的任何时刻终止). 子进程退出时,内核将子进程置为僵尸状态,这个 ...
- (树莓派、Arduino、物联网、智能家居、机器人)传感器、机械装置、电子元件
定制 PCB 1. 机械类 履带底盘 2. 传感器 温度传感器(temperature).湿度传感器(humidity) DHT11/DHT22 驱动:BCM2835 (被动)红外传感器(Passiv ...
- HDU 4135:Co-prime(容斥+二进制拆分)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- War Chess bfs+优先队列
War chess is hh's favorite game: In this game, there is an N * M battle map, and every player has hi ...
- WC游记
第一次来WC,感觉这种集训真吼啊 day0 火车上快速补习了莫队,和AC自动姬,AC自动姬以前就会写只不过太久没写忘了我会了= = 莫队只是学习了做法,还没有做过题…… 本来想再复习一下后缀数组,然后 ...
- mysql安装错误解决办法
在我们装mysql数据库时,出现安装失败是一件非常令人烦恼的事情,接下来小编就给大家带来在我们安装mysql数据库失败的一些解决方法,感兴趣的小伙伴们可以参考一下 mysql数据库安装不了了!my ...
- 【转】python基础-编码与解码
[转自:https://www.cnblogs.com/OldJack/p/6658779.html] 一.什么是编码 编码是指信息从一种形式或格式转换为另一种形式或格式的过程. 在计算机中,编码,简 ...
- 转-java编译时error: illegal character '\ufeff' 的解决办法-https://blog.csdn.net/t518vs20s/article/details/80833061
原文链接:https://blog.csdn.net/shixing_11/article/details/6976900 最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退 ...