我们知道js绑定事件用attachEvent和addEventListener;
这两种方式都可以给一个事件绑定多个处理函数,但处理函数是按绑定顺序倒序执行的,而且有添加和删除事件处理函数的方法,就是没有找到获取事件处理函数的方法。
两个问题:
1、如何控制或修改绑定事件的执行顺序,让后绑定的最后执行,或按特定的顺序执行。
2、如何获取一个对象的某事件的所有处理函数,获取后能否重新排序绑定,谢谢各位
这两种方式都可以给一个事件绑定多个处理函数,但处理函数是按绑定顺序倒序执行的,而且有添加和删除事件处理函数的方法,就是没有找到获取事件处理函数的方法。
两个问题:
1、如何控制或修改绑定事件的执行顺序,让后绑定的最后执行,或按特定的顺序执行。
2、如何获取一个对象的某事件的所有处理函数,获取后能否重新排序绑定,谢谢各位
解决方案 »
- extjs4.0 给grid加载数据 问题
- javascript得到div css样式
- 在Javascript 中怎样为textbox动态添加 onkeydown的委托?
- 正则怎样匹配所有匹配的字符?
- 运行结果很奇怪的代码!高手帮忙看看!!!!
- 弹出一个js对话框,怎么把输入的值返回到页面里的textarea里面去啊?
- 关于form的菜鸟问题(faq里也找不到)
- 真是不好意思,总是麻烦各位,菜鸟真不好当啊
- 怎样将大写英文“AAA” 转换成 小写“aaa”,谢谢~~~
- 在javascript中有没有函数或类型识别
- javascript 不同页面间传递数据
- EXTJS gridpanel 读取数据问题
1,2是一个问题。
解决的办法呢,写一个队列,事件绑定函数只有一个,这个函数遍历队列,执行他们。。
lz用到的处理函数比较多,最好的方法是重写一个监听函数,综合addEventListener和attachEvent函数,并且可以把函数名叠加保存在a的一个属性中,比如保存在class属性中便于存取。这样既能达到lz的要求,还能解决浏览器兼容性问题。
$("yourclass").quene("fx",[fn1,fn2,fn3...])//执行时就会按照数组中的顺序,若想指定函数执行顺序,只要修改函数数组即可