jQuery中提供了哪些钩子?

Roy*_*ing 9 jquery dom dom-events

官方仅$.cssHooksjQuery API文档中记录,并$.valHooks在句子中提到了解决已知问题的方法.val().

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

Har*_*rev 10

有8种不同类型的外露钩.

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

也有其他两个钩:nodeHookboolHook其内部使用,其功能基本上是嵌入到jQuery.attrHooksjQuery.valHooks.

以下是重要的事项:

  • jQuery.attrHooks

    • radio在值重置IE6-9中的值后,在输入上设置类型.
    • contenteditable删除时设置为false(Bug#10429).
    • 在空字符串上将宽度和高度设置为auto而不是0(Bug#8150)
    • 某些属性要求对IE一个特殊的呼叫 - ,,href 和.srcwidthheight
    • 返回属性undefined的空字符串style.
    • 修复value旧IE中属性的获取/设置
    • 如果没有定义钩子,则在读取属性值时,它使用boolHook或者nodeHook(与之相同jQuery.valHooks.button).
    • 在获取/设置元素的属性时可用于附加其他钩子.

     

  • jQuery.propHooks

    • href/ srcproperties应该获得完整的规范化URL(Bug#10299,Bug#12915).
    • 修复"Safari错误报告选项的默认选定属性".
    • 在获取/设置元素的属性时可用于附加其他钩子.

     

  • jQuery.Tween.propHooks

    jQuery.Tween 用于动画等.

    • 修复scrollTopscrollLeft在IE8中 - 将在jQuery 2.0中删除.
    • 其他动画的东西.

     

  • jQuery.cssHooks

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

    • 修复获取/设置CSS属性的值opacity.
    • 修复获取witdthheight取决于display属性.
    • 修复设置widthheight取决于box-sizing属性.
    • 修复获得保证金的权利.
    • 修复Webkit Bug#29084 - getComputedStyle为top/left/bottom/right指定时返回百分比
    • 用于jQuery.fn.animate扩大指定样式属性,如margin,paddingborder.
    • 用于其他各种jQuery.fn.animate相关的东西.
    • 设置各种背景CSS属性inherit是在不使用的情况下实现的jQuery.cssHooks,因为这种方式更短.
    • 在获取/设置元素的单个样式属性时,可用于附加其他钩子.

     

  • jQuery.valHooks

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

     

  • jQuery.event.fixHooks

    对的支架jQuery.event.mouseHooksjQuery.event.keyHooks其中需要固定和基于载体当前的浏览器的正火.

  • jQuery.event.mouseHooks

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

     

  • jQuery.event.keyHooks

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

来自jQuery 1.9.1源代码.