[英]Dynamically created “read more” link expands all the content instead of just one
我尝试编写的代码如下:
我成功了。 2.但是,单击链接会从所有div向下扩展的内容开始扩展所有div的内容。
我究竟做错了什么?
提前致谢!
$(function() {
$('.text').each(function() {
var content = $(this).find('.text_content');
if(content.outerHeight() >75) {
content.css('height','75px').css('overflow','hidden');
content.after('<div class="text_readmore">read more</div>');
$('.text_readmore').each(function() {
$(this).click(function() {
content.css('height','').css('overflow','');
});
});
}
});
});
您正在.click
处理程序中使用content
变量,该变量未指向所需的内容。 您也可以重构代码,以便为所有此类text_readmore
链接定义一次.click
处理程序,以提高效率。
尝试这样的事情:
$(function() {
$('.text').each(function() {
var content = $(this).find('.text_content');
if(content.outerHeight() >75) {
content.css('height','75px').css('overflow','hidden');
content.after('<div class="text_readmore">read more</div>');
}
});
});
$(document).on('click', '.text_readmore', function() { // event delegation
$(this).closest('.text_content').css('height','').css('overflow','');
});
如果您使用的是1.7之前的jQuery版本(即添加.on
时间),请改用.delegate
:
$(document).delegate('.text_readmore', 'click', function() { // event delegation
$(this).closest('.text_content').css('height','').css('overflow','');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.