gpt4 book ai didi

javascript - 在不影响旧插件的情况下在页面上包含两个版本的 jQuery

转载 作者:搜寻专家 更新时间:2023-11-01 05:02:02 25 4
gpt4 key购买 nike

我们的 drupal 网站使用 jQuery 1.2.1 版运行,我们尚未升级。

问题是这样的:

我们需要添加一个名为 jQuery Tokeninput 的新插件,但它只能在最新的 jQuery 版本中工作。我们尝试用旧版本添加最新的 jQuery 版本,但它产生了奇怪的结果。

我的问题是,如何在不影响旧的 jQuery 插件的情况下包含最新的 jQuery 文件?

最佳答案

方法#1:(推荐)

你可以这样做:

<script type='text/javascript' src='js/jquery_1.7.1.js'></script>   
<script type='text/javascript'>
// In case you wonder why we pass the "true" parameter,
// here is the explanation:
// - When you use jQuery.noConflict(), it deletes
// the "$" global variable.
// - When you use jQuery.noConflict(true), it also
// deletes the "jQuery" global variable.
var $jq = jQuery.noConflict(true);
</script>
<script type='text/javascript' src='js/jquery_1.2.1.js'></script>

这样,当您想要使用新版本的 jquery 而不是 $ 制作的东西时,请使用 $jq

$jq('.selector').on('click', function(){  
//do something
});

方法 #2:(可能会破坏您网站上的内容 - 不推荐)

在您的 template.php 文件中:

<?php
function {theme_name}_preprocess(&$vars, $hook) {
if (arg(0) != 'admin' && $hook == "page") {
// Get an array of all JavaScripts that have been added
$javascript = drupal_add_js(NULL, NULL, 'header');

// Remove the original jQuery library
unset($javascript['core']['misc/jquery.js']);

// Add in our new jQuery library
// We do it this way to keep the includes in the same order
$core = array(
//Alternative jQuery
drupal_get_path('theme', '{theme_name}').'/js/libs/jquery-1.7.1.min.js' => array(
'cache' => TRUE,
'defer' => FALSE,
)
);

// Merge back into the array of core JavaScripts
$javascript['core'] = array_merge($javascript['core'], $core);

// Rerender the block of JavaScripts
$vars['scripts'] = drupal_get_js(NULL, $javascript);
}
}

确保只在您网站的前端执行此操作。如果它们依赖于 Drupal 的 jQuery 版本,它可能会弄乱管理工具栏。

关于javascript - 在不影响旧插件的情况下在页面上包含两个版本的 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com