embrulhar função jQuery
-
08-07-2019 - |
Pergunta
Estou desenvolvendo um addon Firefox, após a nomeação do addon para lançamento público no Firefox local addons, o revisor pediu-me para envolver toda a minha função dentro de um nome de namespace ou pacote.
Até agora eu envolveu todas as minhas funções, exceto a função "jQuery":
myaddonname = {
initialize: function() {
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
if (document.getElementById("contentAreaContextMenu") != null) {
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", this.onContextMenuPopup(), false);
}
jQuery.noConflict();
},
.
.
.
.
}
jQuery.noConflict e algumas outras chamadas Ajax do jQuery ainda são dobrados, alguma maneira de fazer isso?
Solução
Você poderia envolver seu add-on código dentro de uma função anônima, recebimento e armazenamento na esse escopo, o objeto jQuery:
(function ($) {
// $ is available inside this scope
window.myaddonname = { // global add-on namespace
initialize: function() {
//...
}
//...
};
})(jQuery.noConflict()); // execute and pass a reference to jQuery
E se você está em um muito ambiente de alto conflito, você poderia usar jQuery.noConflict(true)
(modo extremo), mas usá-lo com cuidado, com essa opção o objeto window.jQuery
não serão registradas, e a maioria dos plugins não funciona ...
Outras dicas
Se você está empacotando jQuery juntamente com seu código, assim como você pode simplesmente modificar o código da biblioteca para colocá-lo em algum lugar útil.
Para fazê-lo direito , você vai precisar para substituir todo o seu jQuery. * Chamadas com myadoon.jQuery ...