Jquery:一键点击触发所有相同class的按钮
Jquery: One button click triggers all the buttons with same class
我有下面的代码,当单击“更多信息”按钮时,它会显示文章的隐藏内容。当我单击其中一个按钮时,所有按钮都会触发它们的事件,因为它们都具有相同的 class。如何仅显示仅单击“更多信息”按钮的内容?
我从这个 link、http://codepen.io/rossgray/pen/CpJgm
得到了代码
我还是jquery的新手,我真的希望有人能帮助我。谢谢!
var descMinHeight = 120;
var desc = $('.desc');
var descWrapper = $('.desc-wrapper');
// show more button if desc too long
if (desc.height() > descWrapper.height()) {
$('.more-info').show();
}
// When clicking more/less button
$('.more-info').click(function() {
var fullHeight = $('.desc').height();
if ($(this).hasClass('expand')) {
// contract
$('.desc-wrapper').animate({'height': descMinHeight}, 'slow');
}
else {
// expand
$('.desc-wrapper').css({'height': descMinHeight, 'max-height': 'none'}).animate({'height': fullHeight}, 'slow');
}
$(this).toggleClass('expand');
return false;
});
这就是 jquery 的工作原理。
如果您将事件附加到 "more-info" class,所有具有此 class 的对象都将触发该事件。
如果您只希望一个对象触发事件,则为该对象指定一个唯一的 id(例如,id="id1"),然后在 jquery 对象中附加点击事件仅针对 "id1" 标识的对象,即
$('#id1').click(function() {
...
}
下面不是使用 class $('.desc-wrapper')
到 select 所有具有特定 class 的元素,只有前一个元素 $(this).prev()
是 select编辑。 Updated
$('.more-info').click(function() {
var fullHeight = $('.desc').height();
if ($(this).hasClass('expand')) {
// contract
$(this).prev().animate({'height': descMinHeight}, 'slow');
}
else {
// expand
$(this).prev().css({'height': descMinHeight, 'max-height': 'none'}).animate({'height': fullHeight}, 'slow');
}
$(this).toggleClass('expand');
return false;
});
我有下面的代码,当单击“更多信息”按钮时,它会显示文章的隐藏内容。当我单击其中一个按钮时,所有按钮都会触发它们的事件,因为它们都具有相同的 class。如何仅显示仅单击“更多信息”按钮的内容?
我从这个 link、http://codepen.io/rossgray/pen/CpJgm
得到了代码我还是jquery的新手,我真的希望有人能帮助我。谢谢!
var descMinHeight = 120;
var desc = $('.desc');
var descWrapper = $('.desc-wrapper');
// show more button if desc too long
if (desc.height() > descWrapper.height()) {
$('.more-info').show();
}
// When clicking more/less button
$('.more-info').click(function() {
var fullHeight = $('.desc').height();
if ($(this).hasClass('expand')) {
// contract
$('.desc-wrapper').animate({'height': descMinHeight}, 'slow');
}
else {
// expand
$('.desc-wrapper').css({'height': descMinHeight, 'max-height': 'none'}).animate({'height': fullHeight}, 'slow');
}
$(this).toggleClass('expand');
return false;
});
这就是 jquery 的工作原理。
如果您将事件附加到 "more-info" class,所有具有此 class 的对象都将触发该事件。
如果您只希望一个对象触发事件,则为该对象指定一个唯一的 id(例如,id="id1"),然后在 jquery 对象中附加点击事件仅针对 "id1" 标识的对象,即
$('#id1').click(function() {
...
}
下面不是使用 class $('.desc-wrapper')
到 select 所有具有特定 class 的元素,只有前一个元素 $(this).prev()
是 select编辑。 Updated
$('.more-info').click(function() {
var fullHeight = $('.desc').height();
if ($(this).hasClass('expand')) {
// contract
$(this).prev().animate({'height': descMinHeight}, 'slow');
}
else {
// expand
$(this).prev().css({'height': descMinHeight, 'max-height': 'none'}).animate({'height': fullHeight}, 'slow');
}
$(this).toggleClass('expand');
return false;
});