Javascript 使用锚定标记时,可扩展(手风琴)列表中的jQuery折叠功能不起作用
我正在使用jQuery(scripts.js)实现一个手风琴列表。列表的内容由以下php代码生成:Javascript 使用锚定标记时,可扩展(手风琴)列表中的jQuery折叠功能不起作用,javascript,jquery,Javascript,Jquery,我正在使用jQuery(scripts.js)实现一个手风琴列表。列表的内容由以下php代码生成: $resultf = mysqli_query($db,"SELECT * FROM groups WHERE name LIKE 'f%' ORDER BY name"); while($row = mysqli_fetch_array($resultf)) { printf("<li><a href='http://www.domain.com/list/viewgr
$resultf = mysqli_query($db,"SELECT * FROM groups WHERE name LIKE 'f%' ORDER BY name");
while($row = mysqli_fetch_array($resultf))
{
printf("<li><a href='http://www.domain.com/list/viewgroup.php?id=%s'>%s<br></a>
<ul>
<li>
Info line 1<br>
Info line 2<br>
</li>
</ul>
</li>", $row['id'], $row['name']); }
$resultf=mysqli_query($db,“从名为“f%”的组中选择*);
while($row=mysqli\u fetch\u数组($resultf))
{
printf(“
-
信息行1
信息行2
“,$row['id'],$row['name'];}
列表的第一层旨在包含超链接(旁注:我知道jQuery脚本会关闭超链接,但我已经找到了一种解决方法)。然而,用于在第一层中创建超链接的锚标记似乎干扰了折叠功能。更具体地说,折叠函数将隐藏所有行(包括第一层超链接),而不仅仅是包含“信息行1”和“信息行2”的两行
在解决这个问题时,我删除了printf行中的锚定标记,一切正常,除了链接不是可点击的超链接
有人能向我解释为什么锚定标签会导致这样的问题,并可能提供解决方案吗?提前谢谢你的建议 我已更新了您的小提琴,以显示此功能- 您正在将折叠的类添加到
中,该类应位于下面的
中,以保持文本的位置
我更改了以下内容:
.addClass('collapsed').removeClass('expanded').children('ul').hide();
到
这将类添加到
的子类中。我与提供解决方案的人进行了交谈。一个可能的解决方案正在改变:
$('.collapsed')。子项('.show('medium');
到
$('.collapsed')。children('ul')。show('medium')
及
$('.collapsed')。子项('.hide('.medium');
到
$('.collapsed')。children('ul')。hide('medium')
感谢哈克斯布斯在这方面的帮助 链接url周围缺少引号。这是故意的吗?不,对不起。我会把这些加回去。当我在排除故障时删除锚定标签时,我将其取出。谢谢你指出这一点。谁能告诉我为什么有人会投票否决我的问题?如果我的问题出于某种原因不合适,我会从了解原因中获益。谢谢下面是我创建的一个JSFIDLE,它演示了这个问题。我无法在Tier 1列表之前上载+和-图形,但您仍然可以通过直接单击这些行的左侧来单独展开或折叠。您将看到,当单击“全部折叠”功能时,超级链接的第1层消失,而常规文本的第1层保留。非常感谢您的回复。我用你创建的小提琴做了实验,所有的折叠功能都非常有效。但是,列表加载已展开,在项目被折叠后,我在展开功能(单独和全部展开)方面遇到了问题。问题并非始终如一。有时这些功能会起作用,但有时不会。我也不知道为什么我的小提琴工作良好,如果我只是删除与href行锚标签。我认为锚定标记会抛弃javascript,但我不知道如何或如何修复它。非常感谢。您是否希望页面以全部折叠开始?超链接层应该扩展还是只链接到某个地方而不扩展?我已经更新了答案中的fiddle链接。您的按钮功能代码也适用于需要取出的儿童。最后一部分将取决于你打算如何超链接工作。我正在寻找列表开始折叠。每个标有“Tier 1”的行随后展开,每个行下面有两行。我通常会有一个“+”的图像在第1层的前面,但我不知道如何上传在小提琴图像。项目展开后,该图像将变为“-”。当单击超链接时,它是一个实际的链接,但它前面的+和-允许列表展开和折叠。在我的小提琴中,如果你删除锚定标签,它工作得很好(但我失去了超链接功能)。我认为锚定标签和collapseall脚本是不一致的。在更新的fiddle上,expand all在collapseall被使用后效果很好。但是,如果我单独折叠一个或两个,则“全部展开”似乎不起作用。我真的很感激你帮助我的努力。你的建议帮助我思考和了解它。我真的认为问题在于锚定标签,但如果我确实知道,我就不必寻求帮助。非常感谢。
.children().addClass('collapsed').removeClass('expanded').children('ul').hide();