2013-08-29 63 views
0

我試圖確定一個元素的高度大於55.如果是這種情況,包裝div應該摺疊爲55px,並且「Read-more」鏈接應該出現。

問題是,dom導航器.next()和.hide()不在我的每個函數內部工作。我得到的元素的高度是好的,我將它們記錄到控制檯並獲得不同的值,這是可以的。但是,當我使用IF語句來隱藏要小的元素的.read-more鏈接時,它不起作用。

這是我的小提琴http://jsfiddle.net/eKDUe/,我完全失去了。我希望有人能幫幫忙!

readMore.prev('p').each(function(index) { 

var deg = $(this).height(); 
console.log(deg); 
if (deg < 55){ 
    var as = $(this); 
    var as2 = as.next(); 
console.log(as2);  
} 
}); 


readMore.on('click', function(){ 
$this = $(this); 
var current = $this.prev(); 
console.log(current); 
    if(current.height() < 55){ 

     current.css('height', 'auto'); 
    $this.html('Dölj'); 
    }else{ 
    current.css('height', '53px'); 
    $this.html('Läs mer'); 
    } 
}); 
+2

什麼是'readMore'? –

回答

1

嘗試事端glike

readMore = $('.read-more').hide() 
readMore.filter(function(){ 
    return $(this).prev().height() > 55; 
}).show() 

演示:Fiddle

+0

與一些修改一起使代碼工作!十分感謝你的幫助!我添加了「兒童」導航器,以便它能夠到達P元素。再次感謝你! ()(){' ''返回$(this).prev()。children()。height()> 55;' '})。show()' –