2011-02-28 102 views
2

我试图使用2个不同链接显示/隐藏内容,并单击时更改它们的文本。使用两个链接显示/隐藏

这里是完整的JavaScript。链接被添加到标记使用jQuery的2个不同的div。链接应达到打开/关闭隐藏内容和更改链接文本的相同结果。

'this'关键字可以正常工作,但不会更改链接上的文字。 如果我使用选择器'.products-tech-show p'代替。文本更改但不隐藏面板。

任何想法?

var maxHeight = $('.products-techspec-container').height(); 
/* This gets the first few rows and their height before making the box shorter 
Instead of just giving it a fixed height, it calcs the height of them instead */ 
var numOfRows = $('.products-techspec-container table tr').length; 
var height = 0; 
for (var i = 0; i < numOfRows; i++) { 
    h = $('.products-techspec-container table tr:nth-child(' + i + ')').height();  
    if (height+h < 202) { 
     height+=h; 
    } else { 
     break; 
    } 
} 

/* product slides */  
$('.products-techspec-container, .products-desciption-container').css({ 'height': height + 'px', 'overflow': 'hidden' }); 
// Add the JS sliding toggle instead of it being in the HTML 
//alert(height); 
if(height>=129) 
{ 
    $('.products-techspec-container, .products-desciption-container').after('<div class="products-tech-show"><div class="sliderbar"><div class="slidertab"><p class="icon-arrow-down-orange"><a href="#" class="products-techspec-toggle"><strong>Show more</strong> product details</a></p></div></div></div>'); 

}else{ 

    $('.products-techspec-container, .products-desciption-container').after('<div class="products-tech-show"><div class="sliderbar"></div></div>'); 
} 

$('.products-techspec-toggle').click(function() { 
    $('.products-tech-show p').toggleClass("bgpos-arrow-up-orange"); 
    var strong = $(this).find('strong'); 
    if (strong.text() == "Show fewer") {    
     strong.text("Show more");   
     var SupportDiv = document.getElementById('technical-spec');  
     //Scroll to location of SupportDiv on load 
     window.scroll(0,findPos(SupportDiv));   
     $('.products-techspec-container, .products-desciption-container').stop().animate({ 'height' : height + 'px' }, 'slow');   
    } else {    
     strong.text("Show fewer");   
     $('.products-techspec-container, .products-desciption-container').stop().animate({ 'height' :maxHeight + "px" }, 'slow');   
    } 
    return false; 
}); 
+4

你能给我们看看相关的标记吗? – Vadim 2011-02-28 16:25:25

+0

请显示html – capdragon 2011-02-28 17:24:40

回答

0

当$(这)是指p标签,你可以改变文本 - 所以只需使用$(本).parent()来切换父“面板”(你可以通过选择进入.parent()函数调用如果你需要跳过几个“关卡”up。