2017-10-28 4 views
0

似たような質問がありますが、私にはまだ助けになるものはありませんでした。 .fa-caret-right要素のCSS "トランスフォーム"プロパティを切り替えたいとします。初めてクリックすると機能がうまく動作します。しかし、私はそれを2回目にトリガしようとすると、私は常に2回クリックする必要があります。 JavaScriptとHTMLコードを別々のファイルに分けて、HTMLファイルのheadにリンクしました。.click()イベントを切り替えるには、2回クリックする必要があります。

編集:私は#counterを追加し、count++;fa-caret-rightがクリックされたが、transformのみ他のすべての時間が働いているとき、作業常にであること、が分かりました。

誰かが私が作った間違いを見るかもしれない、ありがとう! 私はすでに私が知っているいくつかのクリックイベントを試してみましたが、これは現時点では私のコードです:

HTML

<section class="viewport"> 
    <div class="content"> 
     <div class="controls"> 
     <i class="fa fa-caret-right" aria-hidden="true"></i> 
     </div> 
     <p id="counter">1 of 13</p> 
     <div class="gallery large"> 
     <img src="files/img/ogimage.jpg" id="p1"> 
     <img src="files/img/ogimage2.jpg" id="p2"> 
     <img src="files/img/ogimage3.jpg" id="p3"> 
     <img src="files/img/ogimage4.jpg" id="p4"> 
     </div> 
    </div> 
    </section> 

はJavaScript

//JavaScript Document 
$('document').ready(function() { 

    var count = 1; 
    var total = 13; 

    $('.fa-caret-right').on('click' ,function scrollHorizontal() { 
     count++; 

     var number = count + " of 13"; 
     var scrollTo = $("#p"+count); 
     var where = $(scrollTo).offset().left - 150; 

     $('#counter').html(number); 

     $(".gallery").stop().css("transform","translateX(-"+where+"px)"); 
    } 
); 

}); 
+0

この問題に対してjsfiddleまたはcodepenを作成できますか? –

+1

追跡には '' 'count'''を使用しています。一度クリックすると '' 'count = 2'''が' '' p2'''を意味しますが、もう一度クリックすると3になり、 '' p3''はそこにはありません。また3回目のクリックで作業している理由は、ページを再読み込みしたり、 '' count = 1''を再び呼び出す '' $( "document")。 – chowmean

+0

実際には13個の '#p'要素があります - この例ではコードを短縮しました。 あなたが正しいとすれば、そのページは再読み込みされているので、私には見えません。私も '$(" document ")。ready'なしでコードを書こうとしましたが、何も動作しません。 しかし、私は文書にカウンタを挿入し、「カウント」は常に増加しますが、CSSアクションは機能していないことに気付きました。したがって、この機能は部分的に機能しています。 –

答えて

0

移動(13個の#p要素の合計があります) var count = 1 outside(above)$( 'document')。ready()

+0

いいアイデアですが、残念ながら問題を解決しませんでした。 私はちょうど文書にカウンタを挿入し、CSSアクションが機能していないのに対し、「カウント」は常に増加することを認識しました。その機能は部分的に機能しています...解決策のアイデアはまだありますか? –

関連する問題