Так что я пытаюсь работать в рамках ограничений запроса и сделал некоторый прогресс, и я все еще блокируюсь. Вот сценарий:Инициализация плагина jQuery с noConflict
В настоящее время я работаю с сайтом, который зависит от jQuery v1.4.2. Поскольку единственный доступ, который я предоставил на бэкэнд, - это возможность вводить контент на страницу, управляемую CMS, я загружал jQuery 1.11 для поддержки некоторых необходимых функций.
Прокрутите вперед до вчерашнего дня, и мне стало известно, что команда разработчиков клиента теперь в комплекте v1.4 и v1.11 и имеет noConflicted 1.11 в $$.
(function() {
$$ = $.noConflict(true); // Move jQuery 1.11.0 into $$ and restore $ to jQuery 1.4.2
})();
// Use the following self-invoking anonymous function
// when you need to run code that depends on $ = jQuery 1.11
// Otherwise, you can access jquery 1.11 with $$
// (function($){
// inside here $ is jQuery 1.11
// and jQuery 1.4.2 is out of scope
// })($$);
Поскольку мои скрипты (и плагин, который я пытаюсь загрузить в страницу) впрыскивают в середине страницы и v1.4 JQuery и v1.11 находятся в нижней части страницы, я я загрузка это так:
(function checkForJquery(){
if ('$$' in window) {
(function($) {
console.log('success');
$.getScript("myplugin.jquery.js", function(){
$(".devices").myplugin({
// devices - Array | productID
prop1: ["prod3960155", "prod3640151", "prod3640152", "prod5530141"],
prop2: "attribute",
prop3: "attribute"
});
});
})($$);
} else {
console.log('not yet');
window.setTimeout(checkForJquery, 1000);
}
})();
Так меня вопрос в том, что если я использую:
(function($){})($$);
Я ничего не получаю - плагин никогда не инициализирует. Однако, если я использую:
(function($){})(jQuery);
это действительно работает, но тогда у меня нет доступа к последнему API. Любые идеи, почему один будет работать, а не другой?
Для ясности, я использую JQuery плагин шаблонный, и он начинает так:
;(function($, window, document, undefined) { })(jQuery, window, document);
Любые идеи будут оценены!
Спасибо, Джо
Разве это не должно быть '$$' в шаблоне? 'jQuery' принадлежит к 1.4 ... – eisbehr
wow, используя 6,5-летний jquery - этот веб-сайт должен быть в каком-то музее. – Jamiec
@eisbehr - это, кажется, ответ! – radiantstatic