蜂王浆哪些人不能吃:jquery trigger

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 15:22:33

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 文件 在需要的时候调用,让它变成一个组件形式。