Этого можно добиться, запустив вашу версию jQuery в режиме без конфликтов . Режим «без конфликта» является типичным решением для работы jQuery на странице с другими структурами, такими как prototype , и также может быть использован здесь, поскольку он по существу является пространством имен каждой версии jQuery, которую вы загружаете.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Это изменение будет означать, что любой из jQuery, который вы хотите использовать, нужно будет вызывать с использованием jq13
, а не $
, например,
jq13("#id").hide();
Это не идеальная ситуация, когда две версии работают на одной странице, но если у вас нет альтернативы, то вышеописанный метод должен позволить вам использовать две разные версии одновременно.
Также из любопытства, что если бы мы использовали дополнительный контроль
что нужно для ссылки на еще одну версию jQuery?
Если вам нужно было добавить еще одну версию jQuery, вы можете остановиться на следующем:
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
jq131 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Переменные jq13
и jq131
будут использоваться для требуемых функций конкретной версии.
Важно, чтобы jQuery, использованный оригинальным разработчиком, загружался последним - первоначальный разработчик, вероятно, написал свой код, предполагая, что $()
будет использовать их версию jQuery. Если вы загрузите другую версию после их, $
будет «захвачен» последней загруженной версией, что будет означать исходный код разработчика, работающий в последней версии библиотеки, что сделает noConflicts
несколько избыточным!