我对WordPress提供的jQuery有问题。以下HTML显示了此问题:
<!DOCTYPE html>
<html>
<head>
<script src=\'http://wordpress.myownserver/wp-includes/js/jquery/jquery.js?ver=1.8.3\'></script>
</head>
<body>
<div id="something"></div>
<script>if(window.jQuery) console.log("window.jQuery");</script>
<script>window.jQuery || document.write(\'<script src="/res/jquery-1.8.3.min.js"><\\/script>\')</script>
<script>
$(document).ready(function () {
$(\'#something\').html(\'something\');
});
</script>
</body>
这是我的WordPress站点中的典型情况,其中WordPress的jQuery(用于管理栏)包含在
<head>
, 并且我自己的CDN/fallback jQuery在
</body>
.
此页面的控制台输出为:
window.jQuery
Uncaught TypeError: Property \'$\' of object [object Object] is not a function
我可以用几种方法解决这个问题,例如,我可以替换jQuery
<script>
参与
<body>
收件人:
<script src="/res/jquery-1.8.3.min.js"></script>
没有
window.jQuery
检查但考虑到我已经两次包含jQuery,这并不是最优的。然后我试着更换
<script>
在里面
<head>
收件人:
<script src="/res/jquery-1.8.3.min.js"></script>
令人惊讶的是,这也解决了问题。我知道
wp_deregister_script
, 但对于admin,这也会禁用仪表板中的jQuery。
我想为管理员保留管理员栏。因此,目前该站点只有在管理员登录时才会中断(请参见上面的控制台输出)。我想知道WordPress提供的jQuery是否有什么特别之处。我正在使用版本3.5.1,我计划在我自己的主题中使用jQuery。为了解决这个问题,我应该只包含两次吗?