下拉菜单突然停止工作

时间:2014-03-10 16:03:25

标签: javascript wordpress twitter-bootstrap drop-down-menu

我正在使用基于bootstrap构建的Wordpress(主题:future)。主题是响应式的,在移动视图中,菜单转换为下拉菜单。即使在桌面版本中,我在其中一个菜单选项上有一个下拉菜单,但突然这两个下拉菜单都停止了工作。

除了css文件之外,我没有对源代码进行任何更改。在控制台中有两个javascript错误,但我不确定它们是否与此问题有关:

Uncaught TypeError: Object #<Object> has no method 'on'         bootstrap.min.js?ver=3.0.3:9
Uncaught TypeError: Object #<Object> has no method 'tooltip'    custom.js?ver=1.0:62

当我将鼠标悬停在下拉菜单中时,它会链接到“#”,但我认为这是正确的?否则我不知道从哪里开始解决这个问题,如果你只是告诉我哪一个,我当然会包含代码。

编辑:这是网站http://www.henrikpetersson.se/lararummet/

1 个答案:

答案 0 :(得分:2)

您的网站正在使用jQuery 1.4,但直到jQuery 1.7才添加on() method。 Bootstrap正在尝试使用它并导致错误。

您正在使用的carousel插件可能正在加载旧版本的jQuery并阻止WordPress加载新版本。请参阅上面的jquery 1.4链接的源代码(来自插件的目录)。尝试禁用该插件,看看你的菜单是否有效。 WordPress附带了更现代版的jQu​​ery。

修改
对。该插件最后一次更新于2012年,它以最糟糕的方式加载jQuery。

function sponsors_carousel_enqueue_scripts() {
    if ( function_exists('plugin_url') )
        $plugin_url = plugin_url();
    else
        $plugin_url = get_option('siteurl') . '/wp-content/plugins/' . plugin_basename(dirname(__FILE__));

    // jquery
    wp_deregister_script('jquery');
    wp_register_script('jquery', ($plugin_url  . '/jquery-1.4.2.min.js'), false, '1.4.2');
    wp_enqueue_script('jquery');

来源:http://plugins.svn.wordpress.org/sponsors-carousel/trunk/sponsors-carousel.php

该插件基本上是在说

  1. 取消注册jQuery WP想要加载的任何版本
  2. 使用我的古老版本创建一个名为jQuery的新脚本(因为我总是对的)
  3. 加载我很棒的版本。
  4. 可怕。

    选项

    1. 寻找另一个轮播插件
    2. 编辑此插件并删除所有这三行(应该没问题)
    3. (如果2.不起作用......)编辑此插件并将其指向更现代版本的jQuery