在Wordpress中定义jQuery函数

时间:2016-08-10 23:29:34

标签: jquery wordpress jquery-plugins

我想我已经写了一个应该工作/加载的功能,但事实并非如此。我正在开发一个基于WordPress的网站,因此我不知道我定义该功能的方式是否与word press一起使用或者是否存在其他问题。

我在外部文件中的JavaScript是

jQuery.fn.tapFilter = function(action) {
    if (action === "hide") {
        jQuery(this).addClass('tap-hidden');
        jQuery('.ptb_list-post:not(:has(article:not(.tap-hidden)))').parent('.tap-subcategory').addClass('tap-hidden');
        return this;
    }
    if (action === "show") {
        jQuery(this).removeClass('tap-hidden');
        jQuery('.ptb_list-post:has(article:not(.tap-hidden))').parent('.tap-subcategory').removeClass('tap-hidden');
        return this;
    }
};

我认为这是有效的。我更像是一个涉及编程的设计师。我知道必须使用jQuery而不是WordPress中的$。

我试图通过在页面上调用它来检查函数是否存在

jQuery(document).ready(function( $ ) {
  if (typeof tapFilter == 'function') {
    alert("Function Exists" );
  }
});

相关网页为http://truthaboutporn.org/all-research

1 个答案:

答案 0 :(得分:0)

我不知道为什么它一开始没有加载但是重写函数的声明方式让我加载并在页面上运行。

function(a) {
  a.fn.tapFilter = function(x) {
    if (x === "hide") {
      jQuery(this).addClass('tap-hidden');
      jQuery('.ptb_list-post:not(:has(article:not(.tap-hidden)))').parents('.tap-subcategory').addClass('tap-hidden');
      return this;
    }
    if (x === "show") {
      jQuery(this).removeClass('tap-hidden');
      jQuery('.ptb_list-post:has(article:not(.tap-hidden))').parents('.tap-subcategory').removeClass('tap-hidden');
      return this;
    }
  };
})(jQuery);

我遇到的另一个最大问题是了解.parent().parents()之间的区别。我不得不进一步推进DOM树,我意识到我没有在这里发布一个对这个问题有用的html片段。

隐藏父元素的脚本基于以下问题: select parent node if all children have assigned class