9

官方仅$.cssHooks记录在jQuery API 文档中,并$.valHooks在句子中提到了.val().

我想知道除了这两个之外,jQuery 中有多少钩子,我们应该$.valHooks在插件开发中使用吗?如果是这样,我认为应该将其记录为一个专门的主题,而不仅仅是一个句子。

4

1 回答 1

10

有 8 种不同类型的外露挂钩。

还有一个仅供内部使用(已暴露) - jQuery._queueHooks()

还有另外两个钩子:nodeHookandboolHook内部使用,它们的功能基本上嵌入到jQuery.attrHooksandjQuery.valHooks中。

以下是重要的:

  • jQuery.attrHooks

    • radio在值重置 IE6-9 中的值后设置输入的类型。
    • 删除时设置contenteditable为 false ( Bug #10429 )。
    • 在空字符串上将宽度和高度设置为 auto 而不是 0 ( Bug #8150 )
    • 某些属性需要对 IE 进行特殊调用- hrefsrc和.widthheight
    • 在属性undefined为空字符串的情况下返回。style
    • value修复旧 IE中属性的获取/设置
    • 读取属性值时,如果未定义挂钩,则使用boolHookor nodeHook(与 相同jQuery.valHooks.button)。
    • 在获取/设置元素的属性时,可用于附加额外的钩子。

     

  • jQuery.propHooks

    • href/src属性应该获得完整的规范化 URL(错误 #10299错误#12915 )。
    • 修复“Safari 错误报告选项的默认选定属性”。
    • 可用于在获取/设置元素的属性时附加额外的钩子。

     

  • jQuery.Tween.propHooks

    jQuery.Tween用于动画等。

    • scrollTopIE8中的修复scrollLeft- 将在 jQuery 2.0 中删除。
    • 其他动画的东西。

     

  • jQuery.cssHooks

    添加样式属性挂钩以覆盖获取和设置样式属性的默认行为。

    • 修复获取/设置 CSS 属性的值opacity
    • 修复获取witdthheight依赖display属性。
    • 修复设置widthheight取决于box-sizing属性。
    • 修复获得正确的边距。
    • 修复Webkit 错误 #29084 -getComputedStyle指定顶部/左侧/底部/右侧时返回百分比
    • 用于jQuery.fn.animate扩展指定的样式属性,如margin,paddingborder.
    • 用于其他各种jQuery.fn.animate相关的东西。
    • 将各种背景 CSS 属性设置inherit为 无需使用 即可实现jQuery.cssHooks,因为这样更短。
    • 在获取/设置元素的单个样式属性时,可用于附加额外的钩子。

     

  • jQuery.valHooks

    • 修复了 Blackberry 4.7 的option元素错误(错误 #6932)。
    • 用于读取select元素的选定值。
    • 修复了读取button元素的一些属性-id和. 与(见上文)相同。namecoordsnodeHook
    • 修复了Webkit 与其他人之间检查radio和输入的不兼容问题。checkbox
    • 在获取/设置输入元素的值时,可用于附加额外的钩子。

     

  • jQuery.event.fixHooks

    基于当前浏览器的支持需要修复和规范化的jQuery.event.mouseHooks持有者。jQuery.event.keyHooks

  • jQuery.event.mouseHooks

    • 用于将一些属性从原始MouseEvent传递到 jQuery 事件对象。
    • 跨浏览器规范化event.which(使用哪个鼠标按钮),因为event.button未规范化。
    • 计算pageX, pageY, clientX,clientY和其他如果缺少并将它们设置为 jQuery 事件对象。

     

  • jQuery.event.keyHooks

    • 用于将一些属性从原始KeyboardEvent传递到 jQuery 事件对象。
    • 跨浏览器规范化event.which(按下按钮的字符代码)。在原始事件中,它可能是char、或。charCodekeykeyCode

来自 jQuery 1.9.1 源代码。

于 2013-03-19T22:16:00.437 回答