我正在尝试设置WordPress,以便它使用最新版本的jQuery。以下是我迄今为止所做的工作:
功能。php
<?
add_action( \'wp_enqueue_scripts\', \'RegisterJQuery\' );
add_action( \'wp_enqueue_scripts\', \'EnqueueScripts\' );
function RegisterJQuery()
{
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\', false, "1.9.1" );
wp_enqueue_script( \'jquery\' );
}
function EnqueueScripts()
{
wp_enqueue_script(\'karate\', THEME_DIRECTORY . \'/js/karate.js\', \'jquery\');
}
所以我的“空手道”里的每一件事。js文件按预期工作(包括确认jQuery版本确实已更新的警报)。然而,我的主题(优雅的主题变色龙)在菜单上使用鼠标悬停效果来显示子菜单,这种效果不再起作用。
我怎么知道发生了什么事?我的理解是,如果某个东西与较新版本的jQuery不兼容,那么如果我升级该版本,它仍然可以工作(因为没有冲突模式)。你觉得怎么样?
威廉王子
SO网友:RRikesh
根据this article:
“悬停”伪事件
从1.9开始,不再支持将事件名称字符串“hover”作为“mouseenter mouseleave”的同义词。这允许应用程序附加并触发自定义“悬停”事件。更改现有代码是一个简单的查找/替换过程,jQuery迁移插件也支持“悬停”伪事件以简化迁移。
如果需要继续使用hover()
您可以使用Migrate plugin.
将功能更改为:
function RegisterJQuery()
{
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\', false, "1.9.1" );
wp_enqueue_script( \'jquery\' );
wp_register_script( \'migrate\', \'http://code.jquery.com/jquery-migrate-1.1.1.min.js\');
wp_enqueue_script( \'migrate\' );
}