打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jquery trigger

jquery中trigger是在某个特定的元素上触发某类事件;这种事件可以是默认的事件,比如说click.onfocus.submit等,也可以是自定仪的事件,(需要用到bind方法)

          例如:$("#btn").trgger("click",);意思就是触发id 为btn元素上的click事件。

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

          所有触发的事件现在会冒泡到DOM树上了。举例来说,如果你在一个段落p上触发一个事件,他首先会在这个元素上触发,其次到父元素,在到父元素的父元素,直到触发到document对象。这个事件对象有一个 .target 属性指向最开始触发这个事件的元素。你可以用 stopPropagation() 来阻止事件冒泡,或者在事件处理函数中返回false即可。

jquery中的bind方法是给自定义事件:

  原型是bind(type,fn)或bind(type,data,fn);如果没有data则第二个参数为函数。data为{msg:message}形式出现,为event.data.msg赋值。

如 jQuery 代码:

function handler(event) {

 alert(event.data.foo);

}

 $("p").bind("click", {foo: "bar"}, handler);

Jquery手册中解释如下:



 

二者结合起来可以发挥很大的作用:

比如我们有两个盒子,希望点击按钮让 第二个盒子显示第一个盒子里的内容。
平常我们会这样写:$(function() {

var div = $("#mybutton"); //你的按钮。

var box1= $("#mybox1");

var box2= $("#mybox2");

div.click(function() { var text = box2.val(); box1.val(text); });});

利用bind 和 trigger 我们可以这样写。

$(function() {

var div = $("#mybutton"); //你的按钮。

var box1= $("#mybox1");

var box2= $("#mybox2");

div.bind('my_action', function(e, text) { var text = box1.val(); box2.val(text); });

div.click(function() { $(this).trigger('my_action'); });});

这样写的好处,在以后会慢慢体现,比如你想双击的时候也想 有这样的动作的时候 :只需要在后面加:

div.dblclick(function() { $(this).trigger('my_action'); });

甚至你想在点击后想把第一个盒子消失,只需要在后面再加上

div.bind('my_action', function(e, text) { box1.hide(); });

这样的好处是,当click事件要处理的事情变多的时候,能将处理的事情进行分类,让代码更加有层次。而不是臃肿的click function。
更神奇的是这样写 bind 事件甚至可以分开存在不同的js 文件 在需要的时候调用,让它变成一个组件形式。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jQuery中 trigger() & bind() 使用心得
jQuery事件和动画
jQuery绑定点击事件和改变事件的几种方式以及多个元素绑定多个事件
jQuery事件与事件对象
锋利的jQuery(5)事件和动画
jQuery 插件 仿百度搜索框智能提示 调用简单!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服