私は単純な「もっと読む」ボタンをページに追加しようとしています。私は要素内で最大の文字を隠す作業関数を用意することができました。そして関数を呼び出すために、私は関数を呼び出すために "onclick"イベントでHTMLのボタンを用意しました。htmlクリックイベントでの切り替え機能
これではいけないいくつかのことが起こります。ボタンは隠されたテキストを表示するはずですが、逆のことが起こります。ボタンをクリックするたびに、文字を15に制限するvarを持っていても、さらに多くの文字が削除されます。これがおそらく基本的なjQueryであることを理解するために。私が謝ったのは、私がここで間違っていることを誰かが指摘してくれることを願っています。
HTML:
<button class="content-toggle" onclick="textCollapse()">Read more</button>
のjQuery:
function textCollapse() {
var limit = 15;
var chars = jQuery(".field-content p").text();
if (chars.length > limit) {
var visiblePart = jQuery("<span class='visiblepart'> "+ chars.substr(0, limit) +"</span>");
var dots = jQuery("<span class='dots'>... </span>");
jQuery(".field-content p").toggle()
.empty()
.append(visiblePart)
.append(dots)
}
};
ありがとうマキシムス!しかし、私はまだページをロード/リフレッシュするときにフルテキストを取得し、テキストが折りたたまれているときに制限が適用されていません(私はフルテキストに文字を変更しました)。また、何かが起こる前にボタンを2回クリックしなければならないことも奇妙です(削除された "!"ではif(collapsed)が修正されました)。 – Marrrc
@Marrrc、コードを更新しました。今はOKです。それが正常に動作している場合は、受け入れられたものとしてチェックしてください。 –
ありがとうございますが、私はまだフルテキストから始まります。ボタンをクリックすると、最初はドットだけが残っていますが、ドットとテキストの間はトグルします。それ以外は私の望むものとまったく同じです。折りたたまれたテキストから始まり、折りたたまれたときだけでなく、複数の点を表示する方法を理解する必要があります。私は解決策を聞いて欲しいですが、私はあなたがこれまで提供してきた助けを借りてそれを理解することができると思います。ご協力いただきありがとうございます! – Marrrc