2012-06-10 15 views
5

Sto cercando di eseguire il debug del codice di qualcuno, e mi sono imbattuto in questo modo:qual è il simbolo del triplo dollaro in jquery?

$$$.ajax({ 
    url: ajax_url + param, 
    context: $("#formDialog"), 
    success: function(data) { 
     this.html(data); 
     BindPopupFormEvents(this, title, reload); 
    } 
}, $$$.ajax.PARTAIL_UPDATE, $mainWrapper);​ 

Stiamo utilizzando la libreria jQuery, ma non ho mai visto un segno di dollaro tripla prima e non ho idea di cosa si tratta .. . eventuali suggerimenti?

EDIT

ho trovato questo più avanti:

$$$.fn = $$$.prototype = { 
    init: function(jQuery, test) {}, 
    CONST: CONST 
};​ 

Stiamo solo utilizzando la libreria jQuery, e usiamo un unico simbolo del dollaro nella maggior parte del codice.

puoi spiegare in parole semplici che cosa sta facendo il triplo simbolo del dollaro, per favore?

+0

Io davvero non hanno idea di ciò che il "più tardi" roba che dovrebbe fare :( –

+0

Riguardo alla tua modifica : Quindi è semplicemente stupido ... a meno che "$$$" si riferisca a una versione jQuery diversa da "$"., Sai cosa, dopo ripensarci, anche quello è stupido ... ': ' – gdoron

+0

So che sono più di due anni ... ma ho visto la tua modifica proprio ora ... Vedi la mia risposta aggiornata. Scusa per il ritardo. ':' – gdoron

risposta

7

È solo un alias dell'oggetto jQuery, proprio come $. Questo è tutto ...

in può essere fatto a mano o con jQuery.noConflict()

Esempi:

var $$$ = jQuery.noConflict(); 
var bla = jQuery.noConflict(); 

Ora sia $$$ e bla sono alias per l'oggetto jQuery.

Molte librerie JavaScript utilizzano $ come una funzione o nome di variabile, proprio come fa jQuery. Nel caso di jQuery, $ è solo un alias per jQuery, quindi tutte le funzionalità sono disponibili senza utilizzare $. Se abbiamo bisogno di utilizzare un'altra libreria JavaScript jQuery fianco, siamo in grado di restituire il controllo di $ di nuovo all'altro libreria con una chiamata a $ .noConflict():


Edit per riflettere la modifica:

anche se vedo solo piccola parte del codice, ma $$$.fn = $$$.prototype sembra sciocco come jQuery.fn è un alias a jQuery.prototype ...

Dal codice sorgente:

jQuery.fn = jQuery.prototype 
3

$$$ è solo un [noter] identificatore JavaScript.

La proprietà è $$$non definito da jQuery, ma presumibilmente qualcuno ha fatto qualcosa di simile:

$$$ = jQuery.noConflict(); 

Forse per evitare di sovrascrivere un $ da un'altra libreria. Anche se mi trovo ad essere piuttosto orribile e opterei per legarsi solo ad $jQuery in una chiusura:

;(function myStuff ($, evil$) { 
    // do stuff with $ (jQuery) and "the other $" 
})(jQuery, $) // <-- keep us real 
+0

ma usiamo un singolo segno di dollaro dappertutto, perché in questo caso useremmo una tripla? stiamo solo caricando la libreria jquery –

+1

@estherh Forse il codice di Dr. Evils Awesome Library usa '$'. O forse uno sviluppatore ha pensato che più soldi ('$$$') era meglio di meno denaro ('$'). Non raccomanderei * questo approccio, però :) –

+0

haha ​​:-) avrei scelto sia il tuo che gdoron come la risposta "corretta", ma dovevo scegliere solo uno ... grazie per l'input però –

Problemi correlati