【问题标题】:Looking for a full list of jQuery event types寻找 jQuery 事件类型的完整列表
【发布时间】:2011-02-24 20:01:30
【问题描述】:

在哪里可以找到所有 jQuery 支持的事件的完整列表(如clickmouseup 等)以及触发它们时的一些解释?我在找那些可以绑定的:

$('#foo').bind('click', handler);

例如,我刚刚偶然发现有 paste 事件,但我在他们的文档中的任何地方都找不到对它的任何引用。还有什么?

【问题讨论】:

  • 3.0 版中已弃用 bind() 方法。请改用 on() 方法。以下是 jquery on() 方法的链接:api.jquery.com/on

标签: jquery events dom-events


【解决方案1】:

我知道这个问题已经很老了。但是为了给这个问题提供一个更新和完整的答案。

快捷方法的名称总是与任何 on()/bind()/live() 方法中使用的事件名称相同

因此,如果您想使用任何快捷事件功能,但使用 on()/bind()/live(),您只需使用 方法名称,省略括号并将其放在引号中,例如所以:“事件名称”/'事件名称'。它们的行为应该相同。

例如:.dblclick() -> 'dblclick' =>

$('a').on('dblclick', function() {  
    console.log("I got double clicked");
});

http://api.jquery.com/category/events/ 是事件方法的完整列表。 (是的,我知道我不是唯一一个指向这个站点的人,但连同我的解释,它实际上是一个完整的“on”/“live”/“bind”事件列表)

如果您有机会使用 on(),您应该这样做,因为 on() 的作用相同,并且所有对 'bind' 和 'live' 的调用实际上都调用了 'on' 函数。这里有更多证明:What's the difference between `on` and `live` or `bind`?

还有一些人询问了触摸(移动)事件。我一般建议习惯 on() 事件方法,因为根据jQuery mobile documentation,这是在 html 元素上注册触摸事件的唯一方法,这与 jQuery 未来 api 计划删除 bind()/live( ) 以及所有的快捷事件方法。

【讨论】:

    【解决方案2】:

    您可以查看完整的 jQuery 事件列表:http://api.jquery.com/category/events/

    但是关于你提到的paste 事件,jQuery 也可以绑定到标准的 DOM 事件。 MDNhttps://developer.mozilla.org/en-US/docs/Web/Events提供了一个很好的列表

    【讨论】:

      【解决方案3】:

      MDN 对大多数标准和非标准事件都有很好的概述

      https://developer.mozilla.org/en-US/docs/Web/Reference/Events

      【讨论】:

        【解决方案4】:

        据我所知,此页面列出了所有在所有浏览器中都有效的事件。您不会在这里找到“粘贴”事件,因为正如其他人指出的那样,它不适用于所有浏览器。

        http://www.authenticsociety.com/jquery/list-all-jquery-events.html

        【讨论】:

        • 这是错误的:.mouseup():鼠标按钮在任何时候鼠标指针都在一个元素上
        【解决方案5】:

        http://api.jquery.com/category/events/ 是一份非详尽列表。通过.bind().live() 支持更多的DOM 事件。这些函数可以将处理程序分配给任何标准 DOM 事件,其中大部分都与兼容性表一起列出在 http://www.quirksmode.org/dom/events/

        .bind() 方法是将行为附加到文档的主要方法。 eventType 允许所有 JavaScript 事件类型,例如焦点、鼠标悬停和调整大小。


        从 jQuery 1.7 开始,您应该使用 .on() 代替 .live().bind()

        【讨论】:

        • 所有绑定事件都是我正在寻找的(不是快捷功能)。也许我应该改写我的问题。
        • @serg555:我添加了一个 quirksmode.org 链接,其中列出了大多数(如果不是,全部)事件以及每个浏览器的兼容性表。请注意,Opera 不支持 paste 事件。
        • 仔细观察后,它似乎已经过时了。例如,它说mouseleave 仅在 IE 中工作,但事实并非如此。
        • @serg555:实际上,mouseleave 是由 jQuery 实现的,它不是标准事件。 Firefox 和 Chrome 不支持,我没有检查过 Safari 和 Opera。 jQuery 在那些浏览器中提供了这个事件。你是对的,不过,quirksmode.org 的一些东西已经过时了。
        • 这个答案并不是最新的。例如,touch 事件未列出。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        相关资源
        最近更新 更多