-4

编辑:我通过...加载 jquery 库让它工作 我认为 jQuery 像 JavaScript 一样工作,不需要导入任何东西。很抱歉浪费您的时间提出一个愚蠢的问题。

//

这是使用 jQuery 修复 IE6 中顶部菜单(悬停效果)显示的工作 wordpress 插件。

我想要的是实现主题中的功能,同时消除插件的需要。

如果我把这部分放在我得到的错误

<script type="text/javascript">
    jQuery(document).ready( function($) {
     $('#access li').mouseover( function() {
     $(this).find('ul').show();
     });
     $('#access li').mouseleave( function() {
     $(this).find('ul').hide();
     });
     $('#access li ul').mouseleave( function() {
     $(this).hide();
     });
    });
    </script>

在该<head>部分中Uncaught ReferenceError: jQuery is not defined,我发现最有可能的问题是我的代码是在加载 JS 之前运行的。

我使用了在网上找到的解决方案并将我的代码包装在这个

$(document).ready(function () {
  //my code here
});

并尝试了一下。现在我遇到了两个错误。

Uncaught ReferenceError: $ is not defined
Uncaught ReferenceError: jQuery is not defined

查看错误后,它更清楚了,但仍然不确定为什么它不起作用

//

我通过从http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js加载 jquery 库让它工作我认为 jQuery 像 JavaScript 一样工作,不需要导入任何东西;D

Wordpress 插件源代码:

<?php
/**
 * Plugin Name: Twentyten IE6 Menus
 * Author: Sara Cannon
 * Author URI: http://sara-cannon.com
 * Description: Make the menu drop down in IE6 (if you care about that sort of thing)
 * Version: 1.0
 * License: GPL2
 */
function sara_twentyten_ie6_menus_enqueue() {
 wp_enqueue_script( 'jquery' );
}
add_action( 'after_setup_theme', 'sara_twentyten_ie6_menus_enqueue' );

function sara_twentyten_ie6_menus_script() {
?>
<!--[if lte IE 6]>
<script type="text/javascript">
jQuery(document).ready( function($) {
 $('#access li').mouseover( function() {
 $(this).find('ul').show();
 });
 $('#access li').mouseleave( function() {
 $(this).find('ul').hide();
 });
 $('#access li ul').mouseleave( function() {
 $(this).hide();
 });
});
</script>
<![endif]-->
<?php
}
add_action( 'wp_footer', 'sara_twentyten_ie6_menus_script' );
4

1 回答 1

0

jQuery 不会在 .ready(function() {}); 上传递任何东西

试试这个:

    (function($, window, document, undefined) {
       $(function() {
         $('#access li').mouseover( function() {
         $(this).find('ul').show();
         });
         $('#access li').mouseleave( function() {
         $(this).find('ul').hide();
         });
         $('#access li ul').mouseleave( function() {
         $(this).hide();
         });
       });
    })(jQuery, window, document);

如果您正确导入了 jQuery,则在此块内 jQuery ($) 不应未定义。

于 2012-05-17T03:40:40.513 回答