欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jquery event的简单使用

程序员文章站 2022-07-02 18:59:18
...

最近在开发树型控件时,希望使用标准的jquery的事件来处理:执行前,执行后的事件,以前这块做得较少,差了一下文档,记录如下:

发送前处理

var e = $.Event('beforeAction');
el.trigger(e);
if (e.isDefaultPrevented()) return false;

上面的代码先创建事件,然后发出事件,再判断事件有没有取消。如果在处理中,用户想要中止操作,可以在事件处理函数中执行:

e.preventDefault()

来中止处理。

发送后处理

el.trigger({type:'afterAction', message:'some message'})

这里为什么没有使用 $.Event 来创建事件对象呢?因为我们不需要处理后还可以中止,所以就不需要通过事件对象还判断是否中止了。

如何传递更多参数

有时在trigger时想要传递一些额外的参数给事件处理函数,可以:

trigger(e, data)
trigger(e, [data1, data2, ...])

第一种用法是只传递一个参数,第二种是传递多个参数,这里要使用数组。这样在定义事件处理函数中也要把对应的参数加上,如:

function handler(e, data)
function handler(e, data1, data2)

更详细的还是要看jquery的文档 http://api.jquery.com/trigger/

【更新 2013/03/02】

在使用过程中发现, trigger 发出的消息并不是我真的创建的Event对象。它会添加很多其它的属性,同时把我原始的对象放在 originalEvent 属性中。具体的可以看 http://api.jquery.com/category/events/event-object/ 中关于 OtherProperties 的描述。

转载于:https://my.oschina.net/limodou/blog/110899