2013-03-19 13 views
9

Solo ufficialmente $.cssHooks è documentato in jQuery API documentation e $.valHooks è menzionato in una frase per una soluzione alternativa a un problema noto in .val().Quali ganci sono disponibili in jQuery?

Mi chiedo quanti ganci ci sono in jQuery oltre a questi 2, e dovremmo usare $.valHooks nel nostro sviluppo di plugin? Se è così, penso che dovrebbe essere documentato come argomento dedicato invece di una sola frase.

+0

+1 è venuto a sapere la nuova cosa in jquery – sasi

+0

Come regola generale, non si deve fare affidamento su funzionalità non documentate perché il loro comportamento potrebbe essere imprevedibile e può cambiare in qualsiasi momento senza preavviso nelle versioni future. – JJJ

+0

@Juhana: Accetto. Comunque, sembra che '$ .valHooks' sia ora usato da alcuni plugin per cambiare il comportamento di' .val() '. E penso davvero che sia un buon aggancio in qualche modo. –

risposta

10

Esistono 8 diversi tipi di ganci esposti.

C'è un altro solo per uso interno (che è esposto) - jQuery._queueHooks().

Ci sono anche altri due ganci: nodeHook e boolHook che vengono utilizzati internamente e la loro funzionalità è sostanzialmente incorporato in jQuery.attrHooks e jQuery.valHooks.

Ecco quelli importanti:

  • jQuery.attrHooks

    • Impostazione del tipo su un ingresso radio dopo il valore reimposta il valore IE6-9.
    • Impostare contenteditable su false su rimozioni (Bug #10429).
    • Set larghezza e l'altezza di auto, invece di 0 sulla stringa vuota (Bug #8150)
    • Some attributes require a special call on IE - href, src, width e height.
    • Restituisce undefined in caso di stringa vuota per l'attributo style.
    • Fix get/set per la proprietà value nel vecchio IE
    • Quando la lettura dei valori di attributo se nessun gancio è definito utilizza sia boolHook o nodeHook (che è lo stesso come jQuery.valHooks.button).
    • Potrebbe essere utilizzato per allegare ganci aggiuntivi quando si ottiene/imposta un attributo di un elemento.

     

  • jQuery.propHooks

    • href/src proprietà devono ottenere l'URL normalizzato completo (Bug #10299, Bug #12915).
    • Correzione di "Safari segnala erroneamente la proprietà selezionata predefinita di un'opzione".
    • Potrebbe essere utilizzato per allegare ganci aggiuntivi quando si ottiene/imposta una proprietà di un elemento.

     

  • jQuery.Tween.propHooks

    jQuery.Tween è usato per le animazioni e così.

    • Fix per scrollTop e scrollLeft in IE8 - verrà rimossa in jQuery 2.0.
    • Altre cose di animazione.

     

  • jQuery.cssHooks

    Cestino di proprietà ganci di stile per l'override del comportamento predefinito di ottenere e impostare una proprietà di stile.

    • Correzione per ottenere/impostare il valore della proprietà CSS opacity.
    • Correzione per ottenere witdth e height a seconda della proprietà display.
    • Correzione dell'impostazione width e height in base alla proprietà box-sizing.
    • Correzione per ottenere margine-destra.
    • Fix per Webkit Bug #29084-getComputedStyle rendimenti per cento quando specificato per la parte superiore/sinistra/basso/a destra
    • Utilizzato in jQuery.fn.animate per espandere le proprietà stile specificato come margin, padding e border.
    • Utilizzato in altre varie cose correlate a jQuery.fn.animate.
    • L'impostazione di varie proprietà CSS di sfondo su inherit viene eseguita senza utilizzare jQuery.cssHooks, perché è più breve in questo modo.
    • Potrebbe essere utilizzato per allegare ganci aggiuntivi quando si ottiene/imposta una proprietà di stile individuale di un elemento.

     

  • jQuery.valHooks

    • Risolve un Blackberry 4.7 bug per option elementi (Bug #6932).
    • Utilizzato per leggere il valore selezionato per gli elementi select.
    • Correzioni di lettura di alcune proprietà dell'elemento button - id, name e coords. Lo stesso di nodeHook (vedi sopra).
    • Corregge l'incompatibilità sul controllo degli ingressi radio e checkbox tra Webkit e altri.
    • Potrebbe essere utilizzato per allegare ganci aggiuntivi durante l'acquisizione/impostazione del valore di un elemento di input.

     

  • jQuery.event.fixHooks

    Un supporto per jQuery.event.mouseHooks e jQuery.event.keyHooks che richiedono fissa e normalizzante basato sul supporto del browser corrente.

  • jQuery.event.mouseHooks

    • Utilizzato per trasferire alcune proprietà dall'originale MouseEvent per l'oggetto evento jQuery.
    • Normalizza event.which (con quale pulsante del mouse è stato utilizzato) sui browser, perché event.button non è normalizzato.
    • Calcola pageX, pageY, clientX, clientY e altri se mancanti e li imposta sull'oggetto evento jQuery.

     

  • jQuery.event.keyHooks

    • Utilizzato per trasferire alcune proprietà dall'originale KeyboardEvent per l'oggetto evento jQuery.
    • Normalizza event.which (il codice carattere del pulsante che è stato premuto) tra i browser. Nell'evento originale potrebbe essere char, charCode, key o keyCode.

Dalla fonte jQuery 1.9.1.

+1

Grazie mille per aver elencato tutti questi ganci. Penso di aver bisogno di leggere il codice jrery src in tutto per ciascuno. –

Problemi correlati