我正在尝试使用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;
});
答案 0 :(得分:0)
当$(this)引用p标签时,您可以更改文本 - 所以只需使用$(this).parent()来切换父“面板”(您可以将选择器传递给.parent()函数调用,如果你需要跳几个“级别”。