使用两个链接显示/隐藏

时间:2011-02-28 16:21:44

标签: javascript jquery

我正在尝试使用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;
});

1 个答案:

答案 0 :(得分:0)

当$(this)引用p标签时,您可以更改文本 - 所以只需使用$(this).parent()来切换父“面板”(您可以将选择器传递给.parent()函数调用,如果你需要跳几个“级别”。