【问题标题】:Fancy Box and Booking Calendar - JQuery conflict in Wordpress花式盒子和预订日历 - Wordpress 中的 JQuery 冲突
【发布时间】:2012-11-29 18:07:00
【问题描述】:

我更新了我的 WP 网站上的预订日历插件。由于脚本错误,它无法正常工作,我使用以下解决方案修复了它:http://wpbookingcalendar.com/faq/loading-jquery-twice/

问题是,删除该行会使 FancyBox 不再工作。我已经更新了 FancyBox 和 JQuery 文件,但仍然遇到同样的问题:我必须在 Booking Calendar 或 FancyBox 之间进行选择才能工作,编辑或退出对 Jquery 的调用。

这就是页面标题现在的样子。无论如何我可以让这两个东西同时工作吗?

谢谢!

    <?php if ( is_page('Booking Calendar Name') ) { ?><?php wp_head(); ?><?php } ?>

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<!-- <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery-1.8.3.min.js"></script> -->

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.flow.1.2.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.form.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/init_form.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/init.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/easySlider1.5.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/dropdowns.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/fancybox/jquery.fancybox.js"></script>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/fancybox/jquery.fancybox.css" media="screen" />

【问题讨论】:

  • 正在加载 jQuery 吗?因为在您的代码中被注释掉了
  • 我想是的。阅读 Booking Calendar 的解决方案,您将注释掉该行以避免重复,因此它应该已经与 Book Calendar 一起加载。

标签: jquery wordpress fancybox


【解决方案1】:

无法查看您网站上的源代码,很难说,但@JFK 指出的内容让我认为您的网站上没有 jQuery,除非您在使用日历插件的页面上。在任何一种情况下,我都会尝试取消注册脚本并通过你的functions.php加载你想要的脚本,如下所示:

wp_deregister_script('jquery');
    if(!is_admin()) { 
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
    wp_enqueue_script('jquery');
}

您可以删除标题中的 jQuery,因为它将在此处加载。

【讨论】:

  • 但这正是 Booking Calendar(我首先链接的那个)的重点:您必须注释掉 jQuery 行以避免与 Booking Calendar 重复。它应该通过预订日历加载一次(我粘贴的代码中的第一行)。您所说的是从 header.php 中删除该行并将该函数添加到 Functions.php 中?这对复制有帮助吗?仅供参考:escapatealagateradevidrieros.com,对此感到抱歉!
  • @aderojas : jQuery 没有加载到那个站点(我什至也没有看到 bookingCalendar)
  • 感谢您的检查。预订日历位于 <?php if ( is_page('Booking Calendar Name') ) { ?><?php wp_head(); ?><?php } ?> 并且它正在工作,因为 www.escapatealagateradevidrieros.com/reserva-online 显示了它(您必须首先选择一个选项)。如果我取消注释该行,fancybox 将工作,但日历不会显示。
  • @aderojas :由于您使用的是 wordpress,因此您应该将别名 $ 替换为 jQuery 否则您将收到此 js 错误 Timestamp: 29/11/2012 2:12:07 PM Error: TypeError: $ is not a function Source File: http://www.escapatealagateradevidrieros.com/wp-content/themes/lagatera/js/init_form.js Line: 7
  • @JFK 该死的,没那么快!它只在 www.escapatealgateradevidrieros.com/reserva-online (实际显示预订日历的地方)有效,所以我仍然需要在网站的其余部分加载 jQuery!我可以直接从函数中执行此操作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
相关资源
最近更新 更多