为了账号安全,请及时绑定邮箱和手机立即绑定

如何绑定DOM元素上的所有事件?

如何绑定DOM元素上的所有事件?

如何绑定DOM元素上的所有事件?我怎样才能绑定所有的事件(即click,keypress,mousedown一个DOM元素),使用jQuery,没有单独列出每一个出来?例:$('#some-el').bind('all events', function(e) {     console.log(e.type);});
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

有一种简单(但不准确)的方法来测试所有事件:

function getAllEvents(element) {
    var result = [];
    for (var key in element) {
        if (key.indexOf('on') === 0) {
            result.push(key.slice(2));
        }
    }
    return result.join(' ');}

然后绑定所有这样的事件:

var el = $('#some-el');el.bind(getAllEvents(el[0]), function(e) {
    /* insert your code */});


查看完整回答
反对 回复 2019-08-19
?
心有法竹

TA贡献1866条经验 获得超5个赞

jQuery改变了它保存事件的方式,有几种方法可以根据你使用的版本提取列表。我在插件中封装了“最新”版本,但基本上你想要:

var events = $._data($('yourelement')[0], "events");

这给出了所有绑定事件的嵌套列表,按“基”事件(无命名空间)分组。

但是,我只是意识到你想要所有本机jQuery事件 - 你可以检查$.event,其中有一些在下$.event.special,但接受的答案可能仍然是你最好的选择。您还可以查看jQuery列出的绑定函数。


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 465 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信