2012-03-21 5 views
0

Мне нужно запустить две версии jQuery. Я пробовал aliasing j для jQuery. Вот мой код.Запуск Несколько версий jQuery в то же время

j = jQuery.noConflict(); // No conflict with older version of jQuery 
(function($) { 
    $('#any_id_or_class').on("click", function(event){ 
    console.log('clicked'); 
    }); 
})(j); 

Я вошел версию JQuery, используя $ .fn.jquery и я получаю две различные версии в зависимости, если я вхожу внутри моей функции или вне сферы. Если я поместил клик на «тело» документа $ («тело»), я получаю вывод, но вот где все идет не так, если я использую какой-либо класс или идентификатор на странице, ничего не происходит? Идеи?

Редактировать 1: Очевидно, что я хотел бы использовать только одну версию jQuery, но это не вариант.

Редактировать 2: Вот как я работал, не идеален, так как хотел попробовать и псевдоним $ в рамках функции.

j = jQuery.noConflict(); // No conflict with older version of jQuery 

j(document).ready(function(){ 
    j('#masthead').on("click", function(event){ 
    console.log('clicked'); 
    }); 
}); 
+1

почему использовать более 1 версии? – Joseph

+0

Не было бы проще использовать более новую версию и отобразить любую устаревшую функцию, на которую вы полагаетесь, там, где есть более новая копия? –

+1

_ «но вот где все идет не так» _ ** С самого начала это было не так! ** – gdoron

ответ

1
var j = jQuery.noConflict(); // Unbinds the last included version of Jquery 

    j('#any_id_or_class').on("click", function(event){ 
    console.log('clicked'); 
    }); 

Назначение noConflict будет дерегистрировать последний включенный файл Jquery, поэтому убедитесь, что последний включен один новая версия для работы с .На

+0

А это, наверное, проблема, но это все еще не решает проблему необходимости двух версий. –

+0

Это должно быть сделано. Если вы включаете два jquerys и используете noconflict, как указано выше, все, что после этого с использованием $ ("") будет использовать первый jquery, все, используя j (""), будет использовать второе. Я не совсем уверен, что не так с использованием классов/идентификаторов - есть ли какие-либо ошибки в консоли? вы используете $() или j()? Вы определили j как var, как я поставил выше; var j = jQuery.noConflict(); – RTulley

+0

Я наложил всю функцию на j, так что я все равно должен использовать $ внутри нее. Я попробую использовать j. –

Смежные вопросы