我有一个剃刀页面,在那里我想要一个单独的,可折叠的标题,每个行项目在一个模型。我想在页面上创建一个按钮,在那里它找到页面上每一个带有某个类的手风琴,并展开它们。
我有它非常接近工作,但在展开一些在页面加载时关闭的东西后,你必须点击该手风琴的头部两次,以使它再次折叠
这大概是我的剃刀代码
<button id="expand-button" class="ExpandButton">Expand/Collapse All</button>
foreach (ViewDetailViewModel di in Model.Details)
{
string accordionClass, headerClass;
if (di.RelevantForUser)
{
accordionClass = "expandedAccordion";
headerClass = "relevantHeader";
}
else
{
accordionClass = "collapsedAccordion";
if (di.Type == LineType.Cancelled)
{
headerClass = "cancelledHeader";
}
else
{
headerClass = "irrelevantHeader";
}
}
<div id="accordion-lineitem-@(di.LineNum)" class="@(accordionClass) lineItemAccordion">
<h3 class="@(headerClass) lineItemHeader">Line Item @di.LineNum</h3>
<div id="lineitem-@(di.LineNum)-panel" class="lineitem-panel">
<!--content-->
</div>
</div>
}
这是创建手风琴的jquery
$(function() {
$(".expandedAccordion").accordion({
collapsible: true,
icons : { header : 'ui-icon-circle-plus', activeHeader :'ui-icon-circle-minus'}
});
$(".collapsedAccordion").accordion({
collapsible: true,
active: false,
icons: { header: 'ui-icon-circle-plus', activeHeader: 'ui-icon-circle-minus' }
});
});
在添加展开/折叠按钮代码之前,使用所有这些代码,手风琴都可以很好地工作
$('#expand-button')
.click(function (event) {
var panels = $('.lineitem-panel');
var icons = $('#details .ui-accordion-header-icon');
if (panels.data('slided') === true) {
panels.data('slided', false);
panels.slideUp();
}
else {
panels.data('slided', true);
panels.slideDown();
}
});
“展开/折叠所有”按钮实际上用于在视觉上折叠/展开手风琴,但它不会更新每个手风琴的jquery中的“状态”。
例如,如果lineitem-3作为折叠的手风琴加载,然后单击“展开/折叠全部”按钮,折叠的手风琴将在视觉上展开。然而,jquery并不认为手风琴现在已经展开了:图标没有改变,jquery也不理解面板已经展开了。因此,要使用图标重新折叠line-item3,我必须单击它两次:一次是将它置于jquery的“expanded”状态(即使它已经在视觉上展开),第二次是将它置于“expanded”状态(视觉上和jquery状态)。
所以我的具体问题是:是否有其他方法可以折叠/展开所有手风琴,使jquery能够识别“state”开关
我自己找到了答案,如果有人偶然发现了这个,我想把它贴在这里。它实际上非常简单,只需使用手风琴div而不是面板div并利用手风琴的活动属性
$('#expand-button')
.click(function (event) {
var accordiondivs = $('.lineItemAccordion')
if (accordiondivs.data('slided') === true) {
accordiondivs.data('slided', false);
accordiondivs.accordion('option', { active: false })
}
else if (accordiondivs.data('slided') === false) {
accordiondivs.data('slided', true);
accordiondivs.accordion('option', "active", 0)
}
else {
accordiondivs.data('slided', true);
$('.collapsedAccordion').accordion('option', 'active', 0 );
}
});
我尝试了以下代码,除了图标外,一切都很好。我试图在Google上找到一些解决方案,但我找不到我正在寻找的解决方案。 当我点击其中一个手风琴时,另一个手风琴应该折叠,当前点击的手风琴应该打开,同时fa图标应该根据手风琴的位置而改变。 这是我到目前为止已经尝试过的
在引导手风琴中,我不需要单击文本,而是希望在单击div中的任何位置时使其折叠。 我正在使用引导程序3。所以它不是手风琴,而是一个可折叠的面板。你知道如何让整个面板都可以点击吗?
我正在使用href链接和可折叠标题制作手风琴菜单。问题是,当我单击子手风琴时,它会折叠父级。有什么解决方法吗? 这是更新的版本,它正在工作。解决方案是使用“”(如@Renan Arajo所述)并删除手风琴上的标题设置。 https://codepen.io/CocoSkin/pen/vRQyZP
I',试图构建一个扩展/折叠菜单。 我有一个主导航栏,里面有3个子菜单。默认情况下,子菜单的高度为50px,但一旦点击,这个高度就会变为200px。再点击一下,让它塌陷回原来的50px。 让我烦恼的是,当我展开subMenu1,然后展开Submenu2-Submenu1保持展开,并且我希望它在第二个子菜单被选中时折叠。 这是我的代码; 和jQuery: 我想知道什么功能或什么使用来确保一旦任何子菜
本文向大家介绍jQuery制作效果超棒的手风琴折叠菜单,包括了jQuery制作效果超棒的手风琴折叠菜单的使用技巧和注意事项,需要的朋友参考一下 拉风的jQuery制作的手风琴折叠菜单,效果非常不错!这里是之前版本的改进版,主要是jquery代码改进 演示图: main.js index.html style.css 以上所述就是本文给大家分享的全部内容了,希望能够对大家学习jQuery有所帮助。
问题内容: 我在一页上有2个表格。其中一种形式具有始终显示的Recaptcha。另一个应仅在某些事件(例如,最大程度地尝试登录)后才显示recaptcha。所以有时候我需要2个Recaptchas才能出现在同一页面上。这可能吗?我知道我可能两者都可以使用一个,但是我有布局的方式,我更喜欢有2个。谢谢。 更新: 嗯,我想这可能是不可能的。有人可以推荐另一个捕获库与reCaptcha一起使用吗?我真的