質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

802閲覧

jquery 続きを読むボタンを押すと全コメントが発火してしまう。

m.kk

総合スコア23

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/10/20 08:20

cakephpでアプリを作ってます。

長文に対して一定行を越えたら続きを読むボタンを発生させて残りを隠し、押下時に全文表示させたいです。

機能いが発火するまでは来たのですが、現在は押下時に全レビューに発火してしまいます。
やりたいことは一件ずつ指定して発火させたいです。

jqueryで要素をforeachで回してとるのかと考えて試行錯誤しています。

どうぞよろしくお願いします。

<script> $(function() { var textHeight = $('.detail-user-comment').height(); var arraya = new Array(textHeight); console.log(arraya); var lineHeight = parseFloat($('.detail-user-comment').css('line-height')); var lineNum = 3; var textNewHeight = lineHeight * lineNum; if (textHeight > textNewHeight) { $('.detail-user-comment').css({ 'height': textNewHeight, 'overflow':'hidden' }); $('.readmore-btn').show(); $('.readmore-btn').click(function() { $(this).hide(); $('.detail-user-comment').css({ 'height': textHeight, 'overflow': 'visible' }); return false; }); }; }); </script>
<div class="detail-user-comment"> <?php echo h( $val['comment'] ); ?> </div> <p class="readmore-btn"><a href="">続きを読む</a></p>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

js

1$('.readmore-btn').click(function() { 2 $(this).hide(); 3 //$('.detail-user-comment').css({ 4 $(this).prev().css({ // クリックされた要素を基点に探すように書き換える 5 'height': textHeight, 6 'overflow': 'visible' 7 }); 8 return false; 9});

【.prev() | jQuery API Documentation】
https://api.jquery.com/prev/

投稿2020/10/20 09:54

kei344

総合スコア69458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.kk

2020/10/20 10:48

ありがとうございます! こちらのやり方でもできました!
guest

0

ベストアンサー

idを振って指定するか、currentTargetから「イベントが発火した自身のコメント」を指定するようにすれば良いかと思います。

※未確認

js

1 $('.readmore-btn').click(function(e) { 2 $(e.currentTarget).hide(); 3 $(e.currentTarget).prev('.detail-user-comment').css({ 4 'height': textHeight, 5 'overflow': 'visible' 6 }); 7 return false; 8 }); 9 }; 10 11

投稿2020/10/20 09:50

m.ts10806

総合スコア80854

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.kk

2020/10/20 10:49

ありがとうございます! うまくできました!
m.ts10806

2020/10/20 10:51

clickのところも本当は $('.readmore-btn').on('click',function(e) { のほうが良いです。 動的に要素が増えるなら $(document).on('click','.readmore-btn',function(e) { なぜかは調べてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問