我寫了一個小腳本,通過單擊(查看更多/更少)來展開和摺疊。我的問題是我有「點擊我」按鈕,當我點擊它動態創建div。但是,當div添加到DOM時,容器不會自動擴展,因爲已經給出了高度。 將高度設置爲自動點擊將解決此問題,但有沒有其他可能的解決方法。在查看更多/更少的操作中添加數據
的jsfiddle - http://jsfiddle.net/7ntQR/
代碼
(function($) {
$.fn.truncateText = function() {
this.each(function() {
var el = $(this);
var height = el.height(); //get the current height
el.data("dht",height); //use jquery data store to store the original height
el.css({ //set the height to some pixel...
'height':'40px'
});
var btnState = 'collapse';
var ix = $('<div>', {
'class':'seeMore'
}).appendTo($(el.parent()));
var sm = $('<span>').html('more')
.appendTo(ix)
.on('click' , function() {
if(btnState == 'collapse') {
btnState = 'expand';
el.animate({
'height':'40px'
},500);
}else {
btnState = 'collapse';
el.animate({
'height':el.data("dht")
},500);
}
});
btnState = 'expand';
function expand(elm) {
elm.html('SEE LESS');
}
function collapse(elm) {
elm.html('more');
}
});
};
})(jQuery);
最初原始的div高度是使用所存儲的數據()和該div的高度被改變以40像素之後。
嗨,哥們我試了10分鐘,我會推薦'height:auto' **雖然**我做了一個很小的改動,請看這裏:http://jsfiddle.net/jeLkx/ **尋找一個叫**的標誌' openstate'請':))' – 2012-07-06 03:53:11
嘿Tats_innit當我點擊「點擊我」div不擴大,即高度保持不變。 – user1184100 2012-07-06 08:48:01