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

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

新規登録して質問してみよう
ただいま回答率
85.35%
イベントハンドラ

マウスのクリックなどの特定の事象(イベント)が発生した時に実行される処理のことをイベントハンドラと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

0回答

578閲覧

イベントキャンセル後再実行

sarisari

総合スコア33

イベントハンドラ

マウスのクリックなどの特定の事象(イベント)が発生した時に実行される処理のことをイベントハンドラと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

1クリップ

投稿2020/07/20 12:15

カテゴリーフィルタ機能と3点リーダーを実装しようとしてる最中に詰まってしまったので質問いたしました。

▼フィルタ機能の参考サイトは下記です。
https://linkage-design.net/jquery-filtering-group

3点リーダーとフィルタ機能は、問題なく動いているのですが、
フィルターを掛ける要素の1つ目を目立たせるため1つ目の要素が横幅100%でそれ以下の要素が3つ並びになっております。
現状、フィルタをかけると、フィルタ前の3点リーダーの位置が残っており、1つ目以降の要素が1つ目に来ると3点リーダーの位置がおかしくなってしまいます。

そのため、loadイベントで発火したleaders()を$(window).off("load");でキャンセルし、ボタンを押した際に再発火するようにしたのですがうまくいきません。

html

1 2 <ul class="cat-list"> 3 <li><button data-archive="all">全ての記事</button></li> 4 <li><button data-archive="soat01">soat01</button></li> 5 <li><button data-archive="soat02">soat02</button></li> 6 </ul> 7 8 <div class="p-topic-list inner" id="list"> 9 10 <article data-category="soat01"> 11 <div class="new-icon p-topic-imgBox"> 12 <img alt="" src="/-/media//img/csr_03.png"> 13 </div> 14 <p class="textOverflow">サンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキスト</p> 15 </article> 16 17 <article data-category="soat02"> 18 <div class="new-icon p-topic-imgBox"> 19 <img alt="" src="/-/media//img/csr_03.png"> 20 </div> 21 <p class="textOverflow">サンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキスト</p> 22 </article> 23 24 <article data-category="soat02"> 25 <div class="new-icon p-topic-imgBox"> 26 <img alt="" src="/-/media//img/csr_03.png"> 27 </div> 28 <p class="textOverflow">サンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキスト</p> 29 </article> 30     </div>

css

1 2//1つ目のブロック************************************** 3article:first-child{ 4 max-height: 8.8rem; 5 overflow: hidden; 6} 7 8//2つ目のブロック************************************** 9article:nth-of-type(n+2){ 10 max-height: 4.8rem; 11 overflow: hidden; 12}

javascript

1 2//3点リーダー(jquery)******************************************** 3 function leaders() { 4 $('.textOverflow').each(function () { 5 const $target01 = $(this) 6 let html = $target01.html() 7 let $clone = $target01.clone(); 8 let $targetMaxH = $target01.css("max-height"); 9 let $targetMaxS = $targetMaxH.slice( 0, -2 ); 10 let $targetMaxhMath = parseFloat($targetMaxS); 11 if($target01.height()+2 >= $targetMaxhMath){ 12 $clone.insertAfter(this); 13 $clone 14 .css({ 15 display: 'none', 16 position: 'absolute', 17 overflow: 'visible', 18 maxHeight: 'none' 19 }) 20 .width($target01.width()) 21 .height("auto") 22 while (html.length > 0 && $clone.height() > $target01.height()) { 23 html = html.substr(0, html.length - 1) 24 $clone.html(html + '<span>...</span>') 25 } 26 $target01.html($clone.html()) 27 $clone.remove() 28 } 29 30 }) 31 } 32 33 34$(window).on('load', function(e) { 35 leaders() 36}); 37 38 const animetionNone = document.querySelectorAll(".cat-list button") 39 console.log(animetionNone) 40 animetionNone.forEach(element => { 41 element.addEventListener("click",(event) => { 42 $(window).off("load"); 43 setTimeout(() => { 44 leaders() 45 }, 500) 46 47 }) 48 }); 49 50

分かる方がいましたらご教示いただけると幸いです。

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

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

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

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

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

PgMidori

2020/07/20 23:54

提示いただいているソースだけだと動作しませんでした。 cssとjavascriptが不足しているように思えます。 全文を提示いただくことはできますか?
yambejp

2020/07/21 06:25

動くところまできちんと提示して、その後どうするとどうなる想定なのか 仕様を追記ください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問