Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery手风琴有更简单的方法吗?_Javascript_Jquery_Panel_Accordion_Slide - Fatal编程技术网

Javascript 使用jQuery手风琴有更简单的方法吗?

Javascript 使用jQuery手风琴有更简单的方法吗?,javascript,jquery,panel,accordion,slide,Javascript,Jquery,Panel,Accordion,Slide,一段时间以来,我一直在努力创建一个功能。 这里的想法是,用户可以看到小缩略图+标题,以及发布的信息。然后,他们可以点击标题展开文章,或点击“评论”链接直接展开文章评论。或者,如果他们想查看评论,可以单击标题(展开到文章),然后单击查看评论(展开到评论)。最后,一个模块化但灵活且功能齐全的开放/关闭系统可查看最新新闻 以下是我一直在做的工作:(我把我所有的代码放在一个地方,这样无论谁看到这个都会更容易查看) 这就是我拍摄的目的,但它远远不是我想要的;( 它使用的是jQuery 1.6插件,1.8已

一段时间以来,我一直在努力创建一个功能。 这里的想法是,用户可以看到小缩略图+标题,以及发布的信息。然后,他们可以点击标题展开文章,或点击“评论”链接直接展开文章评论。或者,如果他们想查看评论,可以单击标题(展开到文章),然后单击查看评论(展开到评论)。最后,一个模块化但灵活且功能齐全的开放/关闭系统可查看最新新闻

以下是我一直在做的工作:(我把我所有的代码放在一个地方,这样无论谁看到这个都会更容易查看)

这就是我拍摄的目的,但它远远不是我想要的;( 它使用的是jQuery 1.6插件,1.8已经过时了,但我远不是这方面的大师或专家,我不认为我可以从头开始构建。我已经编辑了这个插件,让它像这样工作,但正如你所看到的,作者和评论开始让粉丝们大吃一惊;这是因为代码在调用“a标签”用于标题;这是标题

有没有人知道有什么更简单的方法来实现我的设想,或者有什么可能的方法来修复当前的代码?我现在非常绝望;;

哦,我觉得我明白了

$('.author').click(function() {
    $(this).parent().find('.authordiv').toggleClass('hidden');
});
$('.comments').click(function() {
    $(this).parent().find('.commentsdiv').toggleClass('hidden');
});
并使用隐藏的css类

.hidden {
    display:none;
}
像这样的:

这是一个手风琴。每个“第一个元素”或标题都是一个div。在该标题中有一个文章标题、一个作者和一个可单击的范围,其中列出了该文章的评论数

每个“第二个元素”或手风琴的内容部分也是一个div。在该div中有一个文章内容div和注释div。在注释div中有一个注释标题(可再次单击)和另一个内容div。层次结构如下所示:

<div id='outer-accordion'>
   <div class='header'>
      <p>Article headline</p>
      <p>by: Author</p>
      <p><span class='clickable'># comments</span></p>
   </div>
   <div class='content'>
      <div class='article'>...</div>
      <div class='comments'>
        <p><span class='clickable'># of comments</span></p>
        <div class='comment-content'>
           comment #1
           comment #2
           ...
        </div>
      </div>
   </div>

   ....

文章标题

作者:作者

#评论

... #评论

评论#1 评论#2 ... ....
当页面启动时,通过
$('div.comments div').hide();
隐藏所有注释内容div,同时设置手风琴,并绑定手风琴
onaccordionchange
onaccordionchangestart
事件。最后,为注释链接注册一个单击事件

如果您单击标题上的任何位置,它会弹出相关的accordion内容选项卡。如果您单击标题中的comments链接,它会打开accordion,并在content div中打开comments div

任何时候打开手风琴选项卡,标题中的注释链接都会隐藏。任何时候关闭手风琴选项卡,标题中的注释链接都会显示


单击accordion content div中的评论链接,切换实际评论。

这不是你要找的吗?不,展开每个区块。这就是我要做的,展开一个字段以查看更多信息。我遇到的问题是我需要将Posted by信息放在标题下方,而不是标题之外用于展开手风琴的“可单击”字段。若要添加到该字段,我需要某种方法使其成为“作者”链接和“评论”链接(如果您单击“作者”链接,当前会显示该链接,但未按预期工作)不扩大领域,但作为自己的元素。天哪,是的!先生,你是救世主!谢谢!事实上我有一个问题,因为你有这样反应的链接,我假设如果我让作者成为一个链接,它会像它被告知的那样打开文章,如果我想将作者链接指向一个完全不同的页面呢?单击“comments”链接导致accordion选项卡打开,因为comments链接位于“first element”中,单击第一个元素中的任意位置会导致accordion选项卡打开。您可以从代码中看到,我为“comments”注册了一个附加的单击事件“链接-它只是设置了一个标志,然后在AccordionChange事件中引用该标志。您必须为作者设置一个类似的单击事件。您可能还希望在单击作者时抑制手风琴激活-不确定如何。似乎是可能的。我会让您了解这一部分。