我正在开展个人项目,我遇到了一个小问题:
这是我的代码,目前有效:http://jsfiddle.net/gvM3b/:
$(".show-more").click(function () {
$(this).text("(Show Less)");
$(".text").toggleClass("show-more-height");
});
问题是“(显示更多)”文本更改为“(显示更少)”但不会在需要时切换回来。
^这是一回事,如果你知道如何在文本中显示更多内容时添加[...],那么另外一件事就是。一直想弄清楚,但不得不寻求一些帮助,我是jquery的新手。
谢谢!
答案 0 :(得分:5)
更新你的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");
});
答案 1 :(得分:4)
使用三元运算符,例如:
$(".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 强>
答案 2 :(得分:2)
像这样:
$(".show-more").click(function () {
$(".text").toggleClass("show-more-height");
if(!$(".text").hasClass("show-more-height")){
$(this).text("Show Less");
}else{
$(this).text("Show More");
}
});
答案 3 :(得分:0)
这是另一个解决方案:
var i = 0;
$(".show-more").on('click', function() {
$(this).text( ++i % 2 ? "(Show Less)" : "(Show More)" );
$('.text').toggleClass("show-more-height");
});
答案 4 :(得分:0)
我想推荐Jquery more less library来处理“显示更多”“减少显示”问题。
另一种选择:cmtextconstrain