jQuery 함수 래핑
-
08-07-2019 - |
문제
저는 Firefox 애드온을 개발 중입니다. Firefox 애드온 사이트에서 공개 릴리스용 애드온을 지정한 후 리뷰어가 제 모든 기능을 네임스페이스나 패키지 이름 안에 넣어달라고 요청했습니다.
지금까지 "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.noConflect 및 기타 jQuery의 Ajax 호출은 아직 래핑되지 않은 상태입니다. 이를 수행할 수 있는 방법이 있습니까?
해결책
익명 함수 내에 추가 기능 코드를 래핑하여 해당 범위에 jQuery 객체를 수신하고 저장할 수 있습니다.
(function ($) {
// $ is available inside this scope
window.myaddonname = { // global add-on namespace
initialize: function() {
//...
}
//...
};
})(jQuery.noConflict()); // execute and pass a reference to jQuery
그리고 만약 당신이 매우 충돌이 심한 환경에서는 다음을 사용할 수 있습니다. jQuery.noConflict(true)
(익스트림 모드) 하지만 신중하게 사용하세요. window.jQuery
개체가 등록되지 않으며 대부분의 플러그인이 작동하지 않습니다...
다른 팁
코드와 함께 jQuery를 패키징하는 경우 라이브러리 코드를 수정하여 유용한 곳에 보관할 수도 있습니다.
그것을 하기 위해 오른쪽, 모든 jQuery.* 호출을 myadoon.jQuery로 바꿔야 합니다...
제휴하지 않습니다 StackOverflow