質問編集履歴

6

質問の追記

2021/02/07 03:26

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,14 @@
28
28
 
29
29
 
30
30
 
31
+ (ちなみに document.addEventListener('DOMContentLoaded', () => {})
32
+
33
+ で囲まれた処理は最初に読み込まれる10記事にしか実行されません。)
34
+
35
+
36
+
37
+
38
+
31
39
  ```javascript
32
40
 
33
41
  $(function(){

5

不足していた情報を追記しました。

2021/02/07 03:26

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  切り替える処理をjavascriptで行いたいのですが、
18
18
 
19
- 現在のコードだと処理が数1000回実行されてしまって
19
+ 現在のコードだと下記の処理が数1000回実行されてしまって
20
20
 
21
21
  エラーが発生したり処理が重くなってしまいます。
22
22
 
@@ -28,6 +28,78 @@
28
28
 
29
29
 
30
30
 
31
+ ```javascript
32
+
33
+ $(function(){
34
+
35
+ $(window).on('scroll', function (){
36
+
37
+ var scroll = $(window).scrollTop();
38
+
39
+ if (scroll % 30 < 1){
40
+
41
+
42
+
43
+ // ロード時にいいねされていないハートを配列で取得
44
+
45
+ $('.inactive-heart').each(function (index, element) {
46
+
47
+ const likeData = $(element).data()
48
+
49
+ const articleId = likeData.articleId
50
+
51
+ axios.get(`/articles/${articleId}/like`)
52
+
53
+ .then((response) => {
54
+
55
+ const inActiveStatus = response.data.hasLiked
56
+
57
+ if ( inActiveStatus === false ) {
58
+
59
+ $(element).removeClass('hidden')
60
+
61
+ }
62
+
63
+ })
64
+
65
+ })
66
+
67
+
68
+
69
+ // ロード時にいいねされているハートを配列で取得
70
+
71
+ $('.active-heart').each(function (index, element) {
72
+
73
+ const likeData = $(element).data()
74
+
75
+ const articleId = likeData.articleId
76
+
77
+ axios.get(`/articles/${articleId}/like`)
78
+
79
+ .then((response) => {
80
+
81
+ const activeStatus = response.data.hasLiked
82
+
83
+ if ( activeStatus === true) {
84
+
85
+ $(element).removeClass('hidden')
86
+
87
+ }
88
+
89
+ })
90
+
91
+ })
92
+
93
+ }
94
+
95
+ });
96
+
97
+ });
98
+
99
+ ```
100
+
101
+
102
+
31
103
 
32
104
 
33
105
  ### 発生している問題・エラーメッセージ
@@ -310,14 +382,8 @@
310
382
 
311
383
  $(window).on('scroll', function (){
312
384
 
313
- //$(".article").each(function(){
314
-
315
- // var ePos = $(this).offset().top;
316
-
317
385
  var scroll = $(window).scrollTop();
318
386
 
319
- // var windowHeight = $(window).height();
320
-
321
387
  if (scroll % 30 < 1){
322
388
 
323
389
 
@@ -370,12 +436,8 @@
370
436
 
371
437
  })
372
438
 
373
-
374
-
375
439
  }
376
440
 
377
- // });
378
-
379
441
  });
380
442
 
381
443
  });

4

追記

2021/02/07 03:19

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -483,3 +483,25 @@
483
483
  同じように「Failed to load resource: net::ERR_INSUFFICIENT_RESOURCES」
484
484
 
485
485
  が出てしまいました。
486
+
487
+
488
+
489
+ また、ハートが両方ともhiddenだったら処理が行われるように
490
+
491
+ 以下のようにコードを書きましたが
492
+
493
+ 新しく記事が読み込まれても反応せず。
494
+
495
+ ```
496
+
497
+ $(function(){
498
+
499
+ $(window).on('scroll', function (){
500
+
501
+ $(".article").each(function () {
502
+
503
+ if ($('.article').find('.active-heart').css('display') == 'none' && $('.article').find('.inactive-heart').css('display') == 'none') {
504
+
505
+ ```
506
+
507
+ 途方にくれております。

3

修正

2021/02/06 12:36

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- インスタグラム風のアプリを作っています。
5
+ Railsでインスタグラム風のアプリを作っています。
6
6
 
7
7
  無限スクロール(InfiniteScroll)を使って
8
8
 

2

改行

2021/02/06 08:08

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,17 @@
4
4
 
5
5
  インスタグラム風のアプリを作っています。
6
6
 
7
- 無限スクロール(InfiniteScroll)を使って記事が10記事ずつ読み込まれるようにしています。
7
+ 無限スクロール(InfiniteScroll)を使って
8
+
9
+ 記事が10記事ずつ読み込まれるようにしています。
8
10
 
9
11
 
10
12
 
11
13
  その時に、新しい記事が読み込まれるたびに
12
14
 
15
+ 記事(article)についているハートの表示を
16
+
13
- 記事(article)についているハートの表示を切り替える処理をjavascriptで行いたいのですが
17
+ 切り替える処理をjavascriptで行いたいのですが
14
18
 
15
19
  現在のコードだと処理が数1000回実行されてしまって
16
20
 

1

改行

2021/02/06 07:04

投稿

Autophagy______
Autophagy______

スコア0

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  エラーが発生したり処理が重くなってしまいます。
18
18
 
19
+
20
+
19
21
  これを解決するためには
20
22
 
21
23
  article.jsにどのようなコードを書けばいいでしょうか?