【问题标题】:Custom jQuery-function not working on WordPress even though other loaded jQuery functions are working即使其他加载的 jQuery 函数正在运行,自定义 jQuery 函数也无法在 WordPress 上运行
【发布时间】:2014-03-23 18:31:18
【问题描述】:

我使用的是 WordPress 3.8.1。我想用这个函数来使用sticky header

<script>
$(document).ready(function() {
    var $header = $("header"),
        $clone = $header.before($header.clone().addClass("clone"));

    $(window).on("scroll", function() {
        var fromTop = $(window).scrollTop();
        console.log(fromTop);
        $("body").toggleClass("down", (fromTop > 200));
    });
});        
</script>

但这对我不起作用,我不知道为什么。我知道 jQuery 已与我的 WordPress 共享,因为 Flexslider 2 现在运行良好。

【问题讨论】:

  • 开发者控制台上的任何输出? Flexslider 2 现在可以工作是什么意思。
  • 我是一个新程序员,不了解开发者控制台,我认为如果 jquery 库没有共享给我的 wordpress flexslider 不起作用
  • .on() 是否适用于 wordpress 使用的 jquery(我必须改用 .live())

标签: javascript jquery wordpress


【解决方案1】:

在这里聚会迟到了,但正确的解决方案是:

了解在 WordPress 中,jQuery 是以no conflict 模式加载的。这意味着$ 变量没有引用 jQuery。

但是,通过修改您的脚本以使用准备好的无冲突安全文档,您可以在函数中使用$

如下修改你的脚本:

// original code - doesn't work, because $ is not jQuery in WordPress
// $(document).ready(function() {
// shorthand no-conflict-safe document ready:
jQuery(function($) {
    // Now $ is safe to use - it references jQuery within this doc ready function
    var $header = $("header"),
        $clone = $header.before($header.clone().addClass("clone"));

    $(window).on("scroll", function() {
        var fromTop = $(window).scrollTop();
        console.log(fromTop);
        $("body").toggleClass("down", (fromTop > 200));
    });
});        

【讨论】:

    【解决方案2】:

    添加这个:

    var j = jQuery.noConflict();
    

    现在你可以像这样编写你的 jQuery 代码了:

    j(document).ready(function(){
        j('.class').event(function(){
    
          // your action............
    
        });
      });
    

    只需将noConflict() 函数分配给一个变量,然后使用该变量而不是jQuery 代码中看到的$

    【讨论】:

    • 我很累尝试,这让我发疯,我可以创建一个假主题来显示我的问题mediafire.com/?59rk29f5ef4j6ad,如果你能解决这个问题,请上传谢谢
    【解决方案3】:

    您是否尝试在标题中设置 jquery 文件(假设您的模板文件夹中有 jquery 文件,但它可以在任何地方,只要您正确引用它):

    <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery-1.3.2.min.js"></script>
    

    例子

    $(document).ready(function(){
         $("#container").alert("blah");
         $(".goodshelf_ul li:first").css("border-top: none;");
         $(".custom_ul li:first").addClass("first");
         $("#footer .frame:last").css("margin: 0;");
         $("#footer .frame:last").addClass("last");
    });
    

    我在所有的 wordpress 网站上都使用 jquery,它运行良好 希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 2012-09-10
      • 2017-08-01
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多