我工作的一个个人项目,我有一个小问题:
这是我的代码代码和当前工作: http://jsfiddle.net/gvM3b/ :
$(".show-more").click(function () {
$(this).text("(Show Less)");
$(".text").toggleClass("show-more-height");
});
问题是,“(显示更多)”文本修改,但在需要的时候“(显示更少)”不切换回。
^这是一两件事,一个额外的事情是,如果你知道如何添加[...]当它说表现出更多的,但上的文字。 一直试图弄明白,但要问的帮助一点,我是新来的jQuery。
谢谢!
更新您的jQuery:
$(".show-more").click(function () {
if($(".text").hasClass("show-more-height")) {
$(this).text("(Show Less)");
} else {
$(this).text("(Show More)");
}
$(".text").toggleClass("show-more-height");
});
见http://jsfiddle.net/gvM3b/1/
使用三元运算,例如:
$(".show-more").click(function () {
var $this = $(this);
$this.text($this.text() == "(Show Less)" ? "(Show More)" : "(Show Less)");
$(".text").toggleClass("show-more-height");
});
或使用.text()
与函数:
$(".show-more").click(function () {
$(this).text(function (i, oldText) {
return oldText == "(Show Less)" ? "(Show More)" : "(Show Less)";
});
$(".text").toggleClass("show-more-height");
});
DEMO 。
像这样:
$(".show-more").click(function () {
$(".text").toggleClass("show-more-height");
if(!$(".text").hasClass("show-more-height")){
$(this).text("Show Less");
}else{
$(this).text("Show More");
}
});
更新小提琴
另外还有一个解决方案:
var i = 0;
$(".show-more").on('click', function() {
$(this).text( ++i % 2 ? "(Show Less)" : "(Show More)" );
$('.text').toggleClass("show-more-height");
});
小提琴: http://jsfiddle.net/gvM3b/6/
我想推荐的jQuery的多库少这需要照顾“显示更多”“显示少”的问题。
一种替代方案: cmtextconstrain