質問編集履歴
6
追記内のslide.jsの記述に変更を加えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -504,11 +504,11 @@
|
|
504
504
|
|
505
505
|
if (currentSlide.hasClass('firstSlide')) {
|
506
506
|
|
507
|
-
|
507
|
+
dir.find('.prev-btn').hide(); // 表示されているスライドが最初のページの場合「前へ」は非表示。
|
508
508
|
|
509
509
|
} else if (currentSlide.hasClass('lastSlide')) {
|
510
510
|
|
511
|
-
|
511
|
+
dir.find('.next-btn').hide(); // 表示されているスライドが最後のページの場合「次へ」は非表示。
|
512
512
|
|
513
513
|
}
|
514
514
|
|
5
ご助言を元にしたコードを追記内に記載致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -364,19 +364,7 @@
|
|
364
364
|
|
365
365
|
ご回答を元にしたコードを追記致します。
|
366
366
|
|
367
|
-
こちらのコードでも、質問前と同様に上手く動きませんでした。状況は以下の通りです。
|
368
|
-
|
369
|
-
0. 「スライド1、2」に関わらず、最初にクリックしたスライドは全ての機能が上手く動く。
|
370
|
-
|
371
|
-
0. スライドを一旦閉じもう片方のスライドをクリックすると、中身(あ, い, う, か, き, くの文字)が無い空白のページが表示される。
|
372
|
-
|
373
|
-
|
367
|
+
ページの中身は独立して(他のスライドに依存する事なく)表示されるようになったものの、「←前へ 次へ→」ボタンのみまだ他のスライドでの動作と連動して表示されてしまいます。
|
374
|
-
|
375
|
-
0. 「← 前へ」や「次へ →」ボタンを押しても相変わらずページの中身が表示されないままページ遷移だけするが、一度「ページボタン」を押せばその番号に対応したページ内容が表示され、その後であれば「← 前へ」や「次へ →」ボタンも機能するようになる。
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
テストまでして頂き有難うございます。どこかコードに相違点がありますでしょうか。
|
380
368
|
|
381
369
|
|
382
370
|
|
@@ -508,9 +496,11 @@
|
|
508
496
|
|
509
497
|
function toggleChangeBtn(dir){
|
510
498
|
|
499
|
+
var dir = $(this).parents('.slide-wrapper'); //対象のクラスを絞りたいが、絞れていない?
|
500
|
+
|
511
|
-
var currentSlide =
|
501
|
+
var currentSlide = dir.find('.active'); // 表示されているスライドをcurrentSlideと名付ける。
|
512
|
-
|
502
|
+
|
513
|
-
$('.change-btn').show();
|
503
|
+
$('.change-btn').show(); // 「前へ」と「次へ」は常に表示する。
|
514
504
|
|
515
505
|
if (currentSlide.hasClass('firstSlide')) {
|
516
506
|
|
@@ -526,17 +516,15 @@
|
|
526
516
|
|
527
517
|
|
528
518
|
|
529
|
-
$('.index-btn').click(function() {
|
519
|
+
$('.index-btn').click(function() {
|
520
|
+
|
530
|
-
|
521
|
+
var dir = $(this).parents('.slide-wrapper'); //対象のクラスを絞る。
|
522
|
+
|
531
|
-
|
523
|
+
dir.find('.active').removeClass('active'); // 表示されていたスライドから.activeを取り除く。
|
532
524
|
|
533
525
|
var clickedIndex = $('.index-btn').index($(this));
|
534
526
|
|
535
|
-
$('.slide').eq(clickedIndex).addClass('active'); //
|
527
|
+
$('.slide').eq(clickedIndex).addClass('active'); // クリックされたページ番号と同じインデックス番号を持つスライドに.activeを付与する。
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
var dir = $(this).parents('.slide-wrapper');
|
540
528
|
|
541
529
|
toggleChangeBtn(dir);
|
542
530
|
|
@@ -544,28 +532,26 @@
|
|
544
532
|
|
545
533
|
|
546
534
|
|
547
|
-
$('.change-btn').click(function() {
|
535
|
+
$('.change-btn').click(function() {
|
536
|
+
|
548
|
-
|
537
|
+
var dir = $(this).parents('.slide-wrapper'); //対象のクラスを絞る。
|
538
|
+
|
549
|
-
var $displaySlide =
|
539
|
+
var $displaySlide = dir.find('.active'); // 表示されているスライドをdisplaySlideと名付ける。
|
550
540
|
|
551
541
|
$displaySlide.removeClass('active'); // .activeが付いていたスライドから.activeを取り除く。
|
552
542
|
|
553
543
|
if ($(this).hasClass('next-btn')) {
|
554
544
|
|
555
|
-
$displaySlide.next().addClass('active'); //
|
545
|
+
$displaySlide.next().addClass('active'); // .next-btnクラスがついていたら、その次のスライドにactiveを付与する。
|
556
546
|
|
557
547
|
}
|
558
548
|
|
559
549
|
else {
|
560
550
|
|
561
|
-
$displaySlide.prev().addClass('active'); //
|
551
|
+
$displaySlide.prev().addClass('active'); // .prev-btnクラスがついていたら、その前のスライドにactiveを付与する。
|
562
552
|
|
563
553
|
}
|
564
554
|
|
565
|
-
|
566
|
-
|
567
|
-
var dir = $(this).parents('.slide-wrapper');
|
568
|
-
|
569
555
|
toggleChangeBtn(dir);
|
570
556
|
|
571
557
|
});
|
4
追記内にて、引数の処理に関する記載を編集致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -506,7 +506,7 @@
|
|
506
506
|
|
507
507
|
$(function() {
|
508
508
|
|
509
|
-
function toggleChangeBtn(){
|
509
|
+
function toggleChangeBtn(dir){
|
510
510
|
|
511
511
|
var currentSlide = $('.active');
|
512
512
|
|
@@ -526,7 +526,7 @@
|
|
526
526
|
|
527
527
|
|
528
528
|
|
529
|
-
$('.index-btn').click(function(
|
529
|
+
$('.index-btn').click(function() { // ページ番号をクリックした際の動き。
|
530
530
|
|
531
531
|
$('.active').removeClass('active'); // .activeクラスが付いていたスライドから.activeを取り除く。
|
532
532
|
|
@@ -544,7 +544,7 @@
|
|
544
544
|
|
545
545
|
|
546
546
|
|
547
|
-
$('.change-btn').click(function(
|
547
|
+
$('.change-btn').click(function() { // 前へ、次へのボタンをクリックした際の動き。
|
548
548
|
|
549
549
|
var $displaySlide = $('.active');
|
550
550
|
|
3
「追記」内のslide.jsにあります引数部分を編集致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -526,7 +526,7 @@
|
|
526
526
|
|
527
527
|
|
528
528
|
|
529
|
-
$('.index-btn').click(function() { // ページ番号をクリックした際の動き。
|
529
|
+
$('.index-btn').click(function(dir) { // ページ番号をクリックした際の動き。
|
530
530
|
|
531
531
|
$('.active').removeClass('active'); // .activeクラスが付いていたスライドから.activeを取り除く。
|
532
532
|
|
@@ -544,7 +544,7 @@
|
|
544
544
|
|
545
545
|
|
546
546
|
|
547
|
-
$('.change-btn').click(function() { // 前へ、次へのボタンをクリックした際の動き。
|
547
|
+
$('.change-btn').click(function(dir) { // 前へ、次へのボタンをクリックした際の動き。
|
548
548
|
|
549
549
|
var $displaySlide = $('.active');
|
550
550
|
|
2
「追記」から下を追加致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -355,3 +355,223 @@
|
|
355
355
|
Rails 5.2.3
|
356
356
|
|
357
357
|
jquery 1.12.4
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
### 追記
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
ご回答を元にしたコードを追記致します。
|
366
|
+
|
367
|
+
こちらのコードでも、質問前と同様に上手く動きませんでした。状況は以下の通りです。
|
368
|
+
|
369
|
+
0. 「スライド1、2」に関わらず、最初にクリックしたスライドは全ての機能が上手く動く。
|
370
|
+
|
371
|
+
0. スライドを一旦閉じもう片方のスライドをクリックすると、中身(あ, い, う, か, き, くの文字)が無い空白のページが表示される。
|
372
|
+
|
373
|
+
0. 更には1ページ目から必ず表示される訳ではなく、先ほどのスライドを何ページ目で閉じたかに依存して途中のページから表示されたりする。
|
374
|
+
|
375
|
+
0. 「← 前へ」や「次へ →」ボタンを押しても相変わらずページの中身が表示されないままページ遷移だけするが、一度「ページボタン」を押せばその番号に対応したページ内容が表示され、その後であれば「← 前へ」や「次へ →」ボタンも機能するようになる。
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
テストまでして頂き有難うございます。どこかコードに相違点がありますでしょうか。
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
**slide.html.erb**
|
384
|
+
|
385
|
+
```rails
|
386
|
+
|
387
|
+
<ul>
|
388
|
+
|
389
|
+
<li><div data-target="slide01" class="click-modal">スライド1</div>
|
390
|
+
|
391
|
+
<div id="slide01" class="modal-wrapper">
|
392
|
+
|
393
|
+
<div class="modal">
|
394
|
+
|
395
|
+
<div class="close-modal">
|
396
|
+
|
397
|
+
<i class="fa fa-2x fa-times"></i>
|
398
|
+
|
399
|
+
</div>
|
400
|
+
|
401
|
+
<div class="slide-wrapper">
|
402
|
+
|
403
|
+
<div class="slide-title">スライド1</div>
|
404
|
+
|
405
|
+
<div class="change-btn-wrapper">
|
406
|
+
|
407
|
+
<div class="change-btn prev-btn">← 前へ</div>
|
408
|
+
|
409
|
+
<div class="change-btn next-btn">次へ →</div>
|
410
|
+
|
411
|
+
</div>
|
412
|
+
|
413
|
+
<ul class="slides">
|
414
|
+
|
415
|
+
<li class="slide firstSlide active">あ</li>
|
416
|
+
|
417
|
+
<li class="slide">い</li>
|
418
|
+
|
419
|
+
<li class="slide lastSlide">う</li>
|
420
|
+
|
421
|
+
</ul>
|
422
|
+
|
423
|
+
<div class="index-btn-wrapper">
|
424
|
+
|
425
|
+
<div class="index-btn">1</div>
|
426
|
+
|
427
|
+
<div class="index-btn">2</div>
|
428
|
+
|
429
|
+
<div class="index-btn">3</div>
|
430
|
+
|
431
|
+
</div>
|
432
|
+
|
433
|
+
</div>
|
434
|
+
|
435
|
+
</div>
|
436
|
+
|
437
|
+
</div>
|
438
|
+
|
439
|
+
</li>
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
<li><div data-target="slide02" class="click-modal">スライド2</div>
|
444
|
+
|
445
|
+
<div id="slide02" class="modal-wrapper">
|
446
|
+
|
447
|
+
<div class="modal">
|
448
|
+
|
449
|
+
<div class="close-modal">
|
450
|
+
|
451
|
+
<i class="fa fa-2x fa-times"></i>
|
452
|
+
|
453
|
+
</div>
|
454
|
+
|
455
|
+
<div class="slide-wrapper">
|
456
|
+
|
457
|
+
<div class="slide-title">スライド2</div>
|
458
|
+
|
459
|
+
<div class="change-btn-wrapper">
|
460
|
+
|
461
|
+
<div class="change-btn prev-btn">← 前へ</div>
|
462
|
+
|
463
|
+
<div class="change-btn next-btn">次へ →</div>
|
464
|
+
|
465
|
+
</div>
|
466
|
+
|
467
|
+
<ul class="slides">
|
468
|
+
|
469
|
+
<li class="slide firstSlide active">か</li>
|
470
|
+
|
471
|
+
<li class="slide">き</li>
|
472
|
+
|
473
|
+
<li class="slide lastSlide">く</li>
|
474
|
+
|
475
|
+
</ul>
|
476
|
+
|
477
|
+
<div class="index-btn-wrapper">
|
478
|
+
|
479
|
+
<div class="index-btn">1</div>
|
480
|
+
|
481
|
+
<div class="index-btn">2</div>
|
482
|
+
|
483
|
+
<div class="index-btn">3</div>
|
484
|
+
|
485
|
+
</div>
|
486
|
+
|
487
|
+
</div>
|
488
|
+
|
489
|
+
</div>
|
490
|
+
|
491
|
+
</div>
|
492
|
+
|
493
|
+
</li>
|
494
|
+
|
495
|
+
</ul>
|
496
|
+
|
497
|
+
```
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
**slide.js**
|
502
|
+
|
503
|
+
```js
|
504
|
+
|
505
|
+
$(document).on('turbolinks:load', function() {
|
506
|
+
|
507
|
+
$(function() {
|
508
|
+
|
509
|
+
function toggleChangeBtn(){
|
510
|
+
|
511
|
+
var currentSlide = $('.active');
|
512
|
+
|
513
|
+
$('.change-btn').show();
|
514
|
+
|
515
|
+
if (currentSlide.hasClass('firstSlide')) {
|
516
|
+
|
517
|
+
$('.prev-btn').hide(); // 表示されているスライドが最初のページの場合「前へ」は非表示。
|
518
|
+
|
519
|
+
} else if (currentSlide.hasClass('lastSlide')) {
|
520
|
+
|
521
|
+
$('.next-btn').hide(); // 表示されているスライドが最後のページの場合「次へ」は非表示。
|
522
|
+
|
523
|
+
}
|
524
|
+
|
525
|
+
}
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
$('.index-btn').click(function() { // ページ番号をクリックした際の動き。
|
530
|
+
|
531
|
+
$('.active').removeClass('active'); // .activeクラスが付いていたスライドから.activeを取り除く。
|
532
|
+
|
533
|
+
var clickedIndex = $('.index-btn').index($(this));
|
534
|
+
|
535
|
+
$('.slide').eq(clickedIndex).addClass('active'); // 今クリックされたページ番号と同じインデックス番号を持つスライドに.activeを付与する。
|
536
|
+
|
537
|
+
|
538
|
+
|
539
|
+
var dir = $(this).parents('.slide-wrapper');
|
540
|
+
|
541
|
+
toggleChangeBtn(dir);
|
542
|
+
|
543
|
+
});
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
$('.change-btn').click(function() { // 前へ、次へのボタンをクリックした際の動き。
|
548
|
+
|
549
|
+
var $displaySlide = $('.active');
|
550
|
+
|
551
|
+
$displaySlide.removeClass('active'); // .activeが付いていたスライドから.activeを取り除く。
|
552
|
+
|
553
|
+
if ($(this).hasClass('next-btn')) {
|
554
|
+
|
555
|
+
$displaySlide.next().addClass('active'); // 今クリックしたボタンに.next-btnクラスがついていたら、その次のスライドにactiveを付与する。
|
556
|
+
|
557
|
+
}
|
558
|
+
|
559
|
+
else {
|
560
|
+
|
561
|
+
$displaySlide.prev().addClass('active'); // 今クリックしたボタンに.prev-btnクラスがついていたら、その前のスライドにactiveを付与する。
|
562
|
+
|
563
|
+
}
|
564
|
+
|
565
|
+
|
566
|
+
|
567
|
+
var dir = $(this).parents('.slide-wrapper');
|
568
|
+
|
569
|
+
toggleChangeBtn(dir);
|
570
|
+
|
571
|
+
});
|
572
|
+
|
573
|
+
})
|
574
|
+
|
575
|
+
});
|
576
|
+
|
577
|
+
```
|
1
タグにJavaScriptを追加致しました。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|