Можно переместить jQuery в другое пространство имен.
//Completely move jQuery to a new namespace in another object.
var dom = {};
dom.query = jQuery.noConflict(true);
Вот немного измененный код из другого вопроса , аскер смог заставить его работать так же, как и вы, букмарклет.
/* I have attempted to change the code to check for the 1.4.x and if its not then
load the latest version of jQUery. */
(function(){
var myBkl = {
jq: null,
loadScript: function(src) {
if(window.jQuery && window.jQuery.fn.jquery.indexOf('1.4') >= 0){
return;
}
var s = document.createElement('script');
s.setAttribute('src', src);
s.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(s);
},
whenLoaded: function(callback){
if (typeof(window.jQuery) !== 'undefined' && window.jQuery.fn.jquery.indexOf('1.4') >= 0) {
myBkl.jq = window.jQuery.noConflict(true);
callback(myBkl.jq);
}
else {
setTimeout((function() {myBkl.whenLoaded(callback); }), 100);
}
},
init: function($){
console.log($.fn.jquery);
console.log(window.jQuery.fn.jquery);
}
};
myBkl.loadScript('http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'); //this will load the latest version from google cdn
myBkl.whenLoaded(myBkl.init);
})();
Ссылка на оригинальный источник: Можно ли загрузить несколько разных версий jQuery на одну и ту же страницу?
Другой вариант для вас, если вы должны это сделать (после того, как вы обнаружите, что вы не можете переписать свой букмарклет без .delgate()
, как предлагали другие), можно иметь несколько версий jQuery на одной странице. смотрите ниже:
if (typeof jQuery == ‘undefined’) {
appendLatestJQuery();
}
else {
jQVersion = $().jquery;
versionArray = jQVersion.split(‘.’);
if (versionArray[1] < 4) {
appendLatestJQuery();
}
else {
runthis();
}
}
function appendLatestJQuery() {
var jQ = document.createElement('script');
jQ.type = 'text/javascript';
jQ.onload=runthis;
jQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
document.body.appendChild(jQ);
}
function runthis() {
var $j = jQuery.noConflict(true);
//now use $j for your code here
}