使用 jQuery,答案很简单。只需使用名为toggle-text 的新类标记此类按钮,然后使用<span> 和<span class="hidden"> 标记要在其间来回切换的文本:
<a class="btn btn-primary toggle-text" data-toggle="collapse" href="#collapseExample">
See <span>more</span><span class="hidden">less</span>...
</a>
您可以拥有任意数量的<span> 标签,并且可以随意订购它们,重要的是它们是否标有hidden 类。
现在在 jQuery 中你可以这样做:
$('.hidden').removeClass('hidden').hide();
$('.toggle-text').click(function() {
$(this).find('span').each(function() { $(this).toggle(); });
});
第一行有点像样板——jQuery 和 Bootstrap 关于隐藏的想法有些冲突。这只是将您使用 Bootstrap 类 hidden 标记为隐藏的所有内容翻转为被 jQuery 隐藏,从而更容易使用
之后 jQuery 可见性函数。
下一点是重要的东西 - 它在所有标记有我们的新类 toggle-text 的元素上安装一个处理程序 - 这个处理程序在单击时切换给定元素的 <span> 子元素的可见性。
使用这个 jFiddle 查看所有操作 - http://jsfiddle.net/w3y421m9/1/
注意:toggle-text 的名称完全是任意的,仅用于标记我们想要此切换行为的按钮。
这是我第一次写一个想要回答的问题。我有兴趣看看是否有人有更好的答案。
对我来说,这个解决方案看起来超级简单,并且具有将按钮文本与按钮的 HTML 保持在一起的一大优点,无需额外的按钮特定 CSS 或 Javascript/jQuery 代码。
jQuery 很好,因为它不必根据您要显示的文本在每个按钮的基础上进行自定义。而且您可以灵活地混合您想要切换和不想切换的文本,例如以下都是等价的:
<span>Show more...</span><span class=hidden">Show less...</span>
Show <span>more</span><span class=hidden">less</span>...
Show <span class=hidden">less</span><span>more</span>...