标题说明得不好,基本上我有8个div,并且css样式使用相同的类。
它们都具有隐藏的内容,我希望一次只能扩展一个div,而不必为每个div和隐藏的内容使用不同的类或标识符。
我试图使用相同的两个div在Jsfidle上显示它,但是由于某种原因我什至无法在jsfiddle上触发它
$(document).on('click',".servicereadmore",function() {
//var x = $(this).closest('div').attr('class')
//$('.hiddenservices').parent(x).slideDown(1000);
$('.hiddenservices').slideDown(1000);
$(this).html("Read less");
$(this).removeClass("servicereadmore");
$(this).addClass("servicereadless");
});
$(document).on('click', ".servicereadless" ,function() {
$('.hiddenservices').slideUp(1000);
$(this).html("Read more");
$(this).removeClass("servicereadless");
$(this).addClass("servicereadmore");
});
目前可以在上面使用,但是会按照说明打开所有隐藏的文本,注释是我一直在尝试仅在按下的按钮的父div范围内进行扩展
您的可点击<a>
标签可能应该是按钮,因为这是它们所处的角色。此外,您的功能目前无法正常工作,因为您已经添加了
return false;
作为每个人的第一个陈述。这样可以防止之后的任何代码运行。取而代之的是,要么更改这些<a>
链接,要么<button type=button>
向处理程序添加参数(“ e”或“ event”)并调用
e.preventDefault();
在处理程序中。
要仅影响页面中与“阅读更多”链接相关的部分,您只需要浏览DOM:
$(this).closest('.myinfo').find('.hiddenservices').slideDown(1000);
这意味着:“从被单击的元素开始,爬上DOM以查找类为'myinfo'的最接近的元素,然后从该点向下查找所有类为'hiddenservices'的元素并将其向下滑动。”
还有两个其他问题:您需要先将“ hiddenservices”部分隐藏起来,否则就看不见了。另外,jsfiddle的另一个问题是您没有选择jQuery。仅通过检查错误控制台,您就可以快速了解到这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句