0

我正在尝试使用 Twitter Bootstrap Popover / Tooltip,但我在控制台中收到以下错误:

Uncaught TypeError: Object #<Object> has no method 'popover'

我的函数文件中有以下内容以包含文件,这些文件可以在源代码中看到,并在单击时指向正确的脚本:

add_action('wp_enqueue_scripts','dcr_enqueue_scripts');

if(!function_exists('dcr_enqueue_scripts')):
function dcr_enqueue_scripts(){

    wp_register_script('tooltip',get_template_directory_uri().'/js/bs-tooltip.js','jquery');
    wp_register_script('popover',get_template_directory_uri().'/js/bs-popover.js',array('jquery','tooltip'),'1.0');
    wp_enqueue_script('tooltip');
    wp_enqueue_script('popover');

}
endif; 

使用以下元素期待弹出窗口:

<th><span>Description:</span><img class="popoverthis" src="<?php bloginfo('template_url')?>/images/info.png" data-content="This is the content" title="Title"></th>

而页面中包含的调用popover函数的jQuery是这样的:

<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery('.popoverthis').popover({
        placement: "bottom"
    });
});

任何有关解决此问题的想法将不胜感激。

4

2 回答 2

0

几件事情要检查:

  • jquery.popover.js页面加载顺序 - 您的弹出框是否在调用 jquery 或插件之前执行?

如果这是问题,您将不得不提高/降低 enque 脚本的优先级,如下所示:

add_action('wp_enqueue_scripts','dcr_enqueue_scripts', **5**); // default is 10

  • 你有正确的 jQuery 版本吗(wordpress 捆绑了一个,有时它可能比外部脚本所需的版本更旧)?

  • 打开 firebug/web 检查器并手动运行:
    jQuery('.popoverthis').popover({ placement: "bottom" });

看看出了什么问题

更新:还有一些可能出错的事情(这是如何解决问题的列表):

  • 您在网站上包含了两个jQuery(可能由另一个插件) - 1.4.2 出现在 1.7.2 之后并破坏了基本的引导 javascript。
  • 您缺少此插件所需的Bootstrap CSS信息。它确实有效,但它会在网站底部显示工具提示信息,因为没有CSS让它看起来很漂亮。

解决方案:使用来自 crowdfavorite 的独立 popovover 插件: https ://github.com/crowdfavorite/jquery-popover并包含其CSS文件。

(您也可以引入 bootstrap 的CSS,但它可能会破坏您的网站CSS

于 2012-06-14T10:55:05.020 回答
0

我看不到任何对 $.noConflict(); 的调用

http://api.jquery.com/jQuery.noConflict/

在站点关闭之前,我从控制台尝试了 jQuery('.popoverthis').hide() ,结果相同。

于 2012-06-14T14:19:25.157 回答