2014-09-27 18 views
6

Ho definito un plugin JQfactory come questochiamata di una funzione utilizzando namespace

(function($, window, document) { 
    $.jqfactory('my.tooltip', { 

     /* My tooltip code */   

    }, false); 
}(jQuery, window, document)); 

Ora assumendo Ho incluso quadro Bootstrap anche nella mia pagina, e voglio chiamare la mia versione di tooltip() solo, non la versione di bootstrap . Come ottengo usando il namespace $.my.tooltip?

+1

provare come questo .. http://stackoverflow.com/a/ 19247955/2567813 –

+0

è possibile utilizzare la funzione noConflict() di Jquery –

+0

@KarthikGanesan jQuery noConflict non risolve questo problema, perché se solo separa le diverse versioni di jQuery. La funzione tooltip non fa parte del codice jQuery originale, quindi non ha senso usare jQuery noConflict, a meno che tu non voglia caricare 2 diverse versioni jQuery e utilizzare 2 diversi oggetti jQuery "$" e "$$" per esempio . Questo sicuramente causerebbe molti problemi in seguito perché lo sviluppatore avrà un codice spaghetti –

risposta

1

Come menzionato sul sito web Bootstrap:

http://getbootstrap.com/javascript/#js-noconflict

// return $.fn.tooltip to previously assigned value 
var bootstrapTooltip = $.fn.tooltip.noConflict(); 

// give $().bootstrapBtn the Bootstrap functionality 
$.fn.bootstrapTooltip = bootstrapTooltip; 

Si potrebbe utilizzare $.bootstrapTooltip per chiamare il tooltip Bootstrap (se mai desidera utilizzarlo). Sarai in grado di utilizzare $.tooltip per qualcos'altro.

jQuery noConflict non risolve questo problema, perché separa solo le diverse versioni di jQuery. La funzione tooltip non fa parte del codice jQuery originale, quindi non ha senso utilizzare jQuery noConflict, a meno che non si desideri caricare 2 diverse versioni jQuery e utilizzare 2 diversi oggetti jQuery "$" e "$$" per esempio . Ciò causerebbe sicuramente molti problemi in seguito perché lo sviluppatore avrà un codice spaghetti.

0

è possibile utilizzare $.widget.bridge come questo

$.widget.bridge("my_tooltip", $.my.tooltip); 
$('#myTooltip').my_tooltip({}); 

o eseguire questo controllo

$.my.tooltip(null, $('#myTooltip2')); 

maggiori dettagli here

+0

'$ .widget.bridge' è parte dell'interfaccia utente di jQuery. L'OP ha detto che sta usando Bootstrap e jQuery, ma non ha menzionato nulla relativi all'interfaccia utente di jQuery. –

Problemi correlati