默认情况下,jQuery创建按钮以显示/隐藏WordPress注释和隐藏注释

时间:2013-11-21 作者:Zyniker

我正在尝试创建一个按钮来显示/隐藏WordPress中的评论。我当前正在使用以下脚本:

<script>
$(document).ready(function() {

// Get the #comments div
var commentsDiv = $(\'#comment-section\');

// Only do this work if that div isn\'t empty
if (commentsDiv.length) {

// Hide the comments div by default
$(commentsDiv).hide();

// Append a link to show/hide
$(\'<button/>\')
  .attr(\'class\', \'toggle-comments\')
  .attr(\'href\', \'#\')
  .html(\'Show Comments <span class="icon_comment"></span>\')
  .insertBefore(commentsDiv);

// when show/hide is clicked
$(\'.toggle-comments\').on(\'click\', function(e) {
  e.preventDefault();

  // show/hide the div using jquery\'s toggle()
  $(commentsDiv).toggle(\'slow\', function() {
    // change the text of the anchor
    var anchor = $(\'.toggle-comments\');
    var anchorText = anchor.html() == \'Show Comments <span class="icon_comment"></span>\' ? \'Hide Comments <span class="icon_comment"></span>\' : \'Show Comments <span class="icon_comment"></span>\';
    $(anchor).html(anchorText);
  });
});

} // End if commentsDiv.length

});
</script>
现在,就按钮的创建而言,该代码的功能与预期一样(即,它创建了一个标记为“显示注释”的按钮);但是,由脚本创建的按钮不能按预期工作(即,它不显示/隐藏#comment section div)。该脚本在我的测试环境中工作得很好,但当我尝试在WordPress的实时安装中部署它时,就会出现上述行为。下面是一个测试安装,其中包含当前实现的脚本:http://zyniker13.com/2013/11/20/test-post/. 正如你所见,按钮是存在的,但它什么也不做。

到目前为止,我已经尝试将代码放在页脚中。php,注释。php,并将jQuery与脚本分离(通过在页眉中调用Google的CDN,在页脚和comments.php中调用脚本本身)。无论我把代码放在哪里,我都无法让它正常工作。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

在wordress中使用jquery时,最好避免使用$(),而是使用jquery()。我不知道这背后的实际原因,但这样做可能是为了避免与使用$语法的其他库发生冲突。

结束