gpt4 book ai didi

javascript - jQuery 可折叠 div,折叠第二个 div

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:26 25 4
gpt4 key购买 nike

我是一名设计师,试图找到解决我的 jQuery 可折叠 div 问题的方法。 (我是 jQuery 的新手,但我对 html 和 CSS 有很好的处理能力)。我似乎无法在论坛中准确找到我要找的东西,所以我试一试。希望有人能帮助我。

我有一个带有标题选项卡和 2 个 div 的面板。我希望面板选项卡中有打开/关闭触发器(带有图形),并且只有第二个 div 在目标时关闭。我希望第一个 div 始终显示,第二个 div 是在面板选项卡中选择按钮时我想打开/关闭的选项。

我使用 Ramin Hossaini 可折叠 div 代码作为起点:

这是 CSS:

h1 {
margin-top:20px;
margin-bottom:20px;
}

p {
margin-bottom:10px;
}

.module {
border:1px solid #ccc;
width: 400px;
margin-bottom:20px;
}

.module .header {
background-color:#efefef;
padding-left:10px;
}

.module .header h1 {
margin:0;
display:inline;
font-size:16px;
}

.module .content{
clear:both;
padding:10px;
}

.module .placeholder {
margin-top:1px;
margin-right:2px;
}

.module .expand {
float:left;
display:inline;
background-image:url(../images/toggle-sprite.png);
background-position: 0px -16px;
width:16px;
height:16px;
}

.module .collapse {
float:left;
display:inline;
background-image:url(../images/toggle-sprite.png);
background-position: 0px 0px;
width:16px;
height:16px;
padding-left: 20px;
background-repeat: no-repeat;
}

这是我的 html:

<div class="panel module">

<div class="panelTab header">
<h1>Header #1</h1>
</div>

<div class="content 1">
<p>I want this content to always show.</p>
</div>

<div class="content 2"> <!-- the 'content' class is only for styling -->
<p>I want this panel to collapse and expand.</p>
</div>

</div>

还有我不完全理解的jquery:

jQuery.collapsible = function(selector, identifier) {

//toggle the div after the header and set a unique-cookie
$(selector).click(function() {
$(this).next().slideToggle('fast', function() {
if ( $(this).is(":hidden") ) {
$.cookie($(this).prev().attr("id"), 'hide');
$(this).prev().children(".placeholder").removeClass("collapse").addClass("expand");
}
else {
$.cookie($(this).prev().attr("id"), 'show');
$(this).prev().children(".placeholder").removeClass("expand").addClass("collapse");
}
});
return false;
}).next();


//show that the header is clickable
$(selector).hover(function() {
$(this).css("cursor", "pointer");
});

/*
* On document.ready: should the module be shown or hidden?
*/
var idval = 0; //increment used for generating unique ID's
$.each( $(selector) , function() {

$($(this)).attr("id", "module_" + identifier + idval); //give each a unique ID

if ( !$($(this)).hasClass("collapsed") ) {
$("#" + $(this).attr("id") ).append("<span class='placeholder collapse'></span>");
}
else if ( $($(this)).hasClass("collapsed") ) {
//by default, this one should be collapsed
$("#" + $(this).attr("id") ).append("<span class='placeholder expand'></span>");
}

//what has the developer specified? collapsed or expanded?
if ( $($(this)).hasClass("collapsed") ) {
$("#" + $(this).attr("id") ).next().hide();
$("#" + $(this).attr("id") ).children("span").removeClass("collapse").addClass("expand");
}
else {
$("#" + $(this).attr("id") ).children("span").removeClass("expand").addClass("collapse");
}


if ( $.cookie($(this).attr("id")) == 'hide' ) {
$("#" + $(this).attr("id") ).next().hide();
$("#" + $(this).attr("id") ).children("span").removeClass("collapse").addClass("expand");
}
else if ( $.cookie($(this).attr("id")) == 'show' ) {
$("#" + $(this).attr("id") ).next().show();
$("#" + $(this).attr("id") ).children(".placeholder").removeClass("expand").addClass("collapse");
}


idval++;
});

};

最佳答案

我使用了以下 jquery:

$('#toggle').on('click', function(){
if($('#toggle').text()==='Open'){
$('#collapsible').slideUp();
$('#toggle').text('Close');
}else{
$('#collapsible').slideDown();
$('#toggle').text('Open');
}
});

您可以在这个 fiddle 中看到它在运行:http://jsfiddle.net/yhTpW/

关于javascript - jQuery 可折叠 div,折叠第二个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com