jQuery不起作用Wordpress顶级菜单

时间:2012-05-16 22:20:13

标签: jquery wordpress drop-down-menu

编辑:我得到了它...加载jquery库我认为jQuery的工作方式与JavaScript类似,无需导入任何东西。很抱歉因为一个无聊的问题而浪费你的时间。

//

这是一个有效的wordpress插件,它使用jQuery来修复IE6中顶层菜单(悬停效果)的显示。

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

如果我把这部分放在我身上的错误

<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' );

1 个答案:

答案 0 :(得分: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($)。