首先我們還是創建一個html文件,裡面包含如下的html結構。
. 代碼如下:
<div id="pane-container">
<div class="pane">
<h1>first pane</h1>
<p>this script should allow only one pane to be visible at a time.</p>
</div>
<div class="pane">
<h1>second pane</h1>
<p>this script should allow only one pane to be visible at a time.</p>
</div>
<div class="pane">
<h1>third pane</h1>
<p>this script should allow only one pane to be visible at a time.</p>
</div>
</div>
然後為頁面定義如下css:
. 代碼如下:
<style type="text/css">
#pane-container
{
margin: 0;
padding: 0;
width: 200px;
}
.pane h1
{
padding: 5px;
cursor: pointer;
position: relative;
background-color: #4c4c4c;
color: #fff;
font-weight: normal;
font-size: 20px;
margin: 0px;
}
.pane p
{
padding: 10px;
margin: 0;
background-color: #e4e4e4;
}
</style>
下面我們來介紹jquery.accordtion.js插件的實現。首先我們需要考慮的是如何隱藏pane裡面的內容部分,也就是p標簽。h1作為標題是不需要隱藏的。
. 代碼如下:
(function ($) {
$.fn.accordtion = function () {
return this.each(function () {
$(this).find('p').hide();
});
}
})(jQuery);
頁面調用的代碼:
. 代碼如下:
$(document).ready(function () {
$('#pane-container').accordtion();
});
插件代碼很簡單,就是找到class為pane的div下面的p,對其隱藏。接下來我們要實現的是,當用戶點到h1的時候,對應的p標簽的內容顯示出來,同時其他h1對應的p標簽的內容隱藏。代碼如下:
. 代碼如下:
//對h1標簽設置click事件
self.delegate('h1', 'click', function () {
//為對應的p標簽設置slideToggle效果
$(this).next('p').slideToggle(600)
//獲取其他pane對象,找到他們下面的p標簽,收起
.parent().siblings().children('p').slideUp(600);
});
現在我們的插件已經很有型了,最後要做的就是添加用戶自定義屬性options,這次我們只添加一個‘默認顯示第幾個pane'的屬性。
. 代碼如下:
//設置第幾個元素顯示
self.children(':eq(' + options.visibleByDefault + ')')//找到和options.visibleByDefault一致的pane對象
.children('p')
.show();
完整的代碼大家還是下demo自己看吧。jQuery.plugin.accordtion
謝謝大家的支持,希望本篇文章對你有幫助。如果對代碼哪裡有不清楚的地方,可以聯系我。