jQuery API documentation中仅记录了$.cssHooks
的正式文件,并在.val()
中针对已知问题的变通方法在句子中提及了$.valHooks
。
我想知道除了这些2之外,jQuery中有多少个钩子,我们应该在插件开发中使用$.valHooks
吗?如果是这样,我认为它应该被记录为专门的主题,而不是仅仅一句话。
答案 0 :(得分:10)
有8种不同类型的外露钩。
还有一个仅供内部使用(已曝光) - jQuery._queueHooks()
。
还有另外两个钩子:nodeHook
和boolHook
在内部使用,其功能基本上嵌入jQuery.attrHooks
和jQuery.valHooks
。
以下是重要的内容:
<强> jQuery.attrHooks
强>
radio
输入上设置类型。contenteditable
设置为false(Bug #10429)。href
,src
,width
和height
。 undefined
属性为空字符串,则返回style
。value
属性的获取/设置boolHook
或nodeHook
(与jQuery.valHooks.button
相同)。
<强> jQuery.propHooks
强>
href
/ src
属性应获取完整的规范化网址(Bug #10299,Bug #12915)。
<强> jQuery.Tween.propHooks
强>
jQuery.Tween
用于制作动画等。
scrollTop
和scrollLeft
- 将在jQuery 2.0中删除。
<强> jQuery.cssHooks
强>
添加样式属性挂钩,以覆盖获取和设置样式属性的默认行为。
opacity
的值。witdth
属性修复获取height
和display
。width
属性修复设置height
和box-sizing
。getComputedStyle
在为top / left / bottom / right指定时返回百分比jQuery.fn.animate
中用于展开指定的样式属性,例如margin
,padding
和border
。jQuery.fn.animate
相关内容。inherit
的情况下,将各种背景CSS属性设置为jQuery.cssHooks
,因为它更短。
<强> jQuery.valHooks
强>
option
元素(Bug #6932)的黑莓4.7错误。select
元素的选定值。button
元素的一些属性 - id
,name
和coords
。与nodeHook
相同(见上文)。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
,charCode
,key
或keyCode
。来自jQuery 1.9.1源代码。