博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery之trigger()
阅读量:5896 次
发布时间:2019-06-19

本文共 1828 字,大约阅读时间需要 6 分钟。

hot3.png

这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个'submit',则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。

<script type="text/javascript">
   $(function(){
      $('#btn').bind("click", function(){
                    $('#test').append("<p>我的绑定函数1</p>");
             }).bind("click", function(){
                    $('#test').append("<p>我的绑定函数2</p>");
             }).bind("click", function(){
                      $('#test').append("<p>我的绑定函数3</p>");
             });
      $('#btn').trigger("click");
   })
</script>
这里面会自动触发一次click事件。也就是页面加载后,就会自动触发一次。
<script type="text/javascript">
   $(function(){
      $('#btn').bind("myClick", function(){
                    $('#test').append("<p>我的自定义事件.</p>");
             });
      $('#btn').click(function(){
           $(this).trigger("myClick");
      }).trigger("myClick");
   })
</script>
上面的代码是jQuery中的连写方式。也会在页面加载后自动触发一次myClick事件。$('#btn').click(function(){ $(this).trigger("myClick"); }).trigger("myClick");类似于
$('#btn').click(function(){ $(this).trigger("myClick"); });$('#btn').trigger("myClick"); 并列的写法。
trigger()方法还可以传递参数。
<script type="text/javascript">
   $(function(){
      $('#btn').bind("myClick", function(event, message1, message2){
                    $('#test').append( "<p>"+message1 + message2 +"</p>");
       });
      $('#btn').click(function(){
           $(this).trigger("myClick",["我的自定义","事件"]);
      }).trigger("myClick",["我的自定义","事件"]);
   })
</script> 在每一个匹配的元素上触发某类事件。还有一个跟trigger差不多的方法,triggerHandler()。
这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作,也不会产生事件冒泡。
这个方法的行为表现与trigger类似,但有以下三个主要区别:
* 第一,他不会触发浏览器默认事件。
* 第二,只触发jQuery对象集合中第一个元素的事件处理函数。
* 第三,这个方法的返回的是事件处理函数的返回值,而不是据有可链性的jQuery对象。此外,如果最开始的jQuery对象集合为空,则这个方法返回 undefined 。
<script type="text/javascript">
   $(function(){
       $('#old').bind("click", function(){
           $("input").trigger("focus");
       });
       $('#new').bind("click", function(){
           $("input").triggerHandler("focus");
       });
       $("input").focus(function(){
           $("body").append("<p>focus.</p>");
       })
   })
</script>
trigger方法还有可能触发input的focus事件。而triggerHandler则不会触发默认事件focus聚焦。

转载于:https://my.oschina.net/guomingliang/blog/313184

你可能感兴趣的文章
angularjs-paste-upload
查看>>
hadoop学习笔记
查看>>
解除 Linux 系统的最大进程数和最大文件打开数限制
查看>>
在 Linux 中删除超大文件的技巧
查看>>
Java类的修饰符判断:java.lang.reflect.Modifier
查看>>
使用优盘或者移动硬盘安装Ubuntu
查看>>
electron-创建一个hello world应用
查看>>
RXjs相关
查看>>
百练2973: Skew binary 数 之 Java 题解
查看>>
SaltStack配置管理
查看>>
linux基础命令 head
查看>>
在模板中将php数组转换成js对象
查看>>
使用java调用FFMPEG进行转码
查看>>
克隆虚拟机以及互相登陆
查看>>
AngularJS笔记
查看>>
【分布式】Zookeeper的Leader选举-选举过程介绍
查看>>
AES加密解密
查看>>
酷客多小程序会员体系上线,你不可不知道!
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
CentOS 6.5上部署drbd
查看>>