2017-10-28 101 views
0

我知道有類似的問題,但沒有任何可以幫助我。 我想切換.fa-caret-right元素的CSS「transform」屬性。當我第一次點擊時,該功能運行良好。但是當我第二次嘗試觸發它時,我總是需要點擊兩次。 我已將JavaScript和HTML代碼分開放在不同的文件中,並將其鏈接到HTML文件的head中。必須點擊兩次來切換.click()事件

編輯:我添加#counter才知,那是count++;總是被點擊時fa-caret-righttransform只工作每個其他時間工作。

也許有人看到我犯的一個錯誤,謝謝! 我已經嘗試了幾種點擊事件,我知道,但這是我的時刻代碼:

HTML(總共有13種#p元素)

<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'''不在那裏。對於第三次點擊工作,原因可能是它正在重新加載頁面或啓動$(「document」)。ready'''函數,它會再次產生count = 1。 – chowmean

+0

實際上有13個'#p'元素 - 我縮短了這個例子中的代碼。 如果你是對的,該頁面被重新加載,它是不可見的。我也嘗試編寫沒有'$(「document」)。ready'的代碼,但沒有任何效果。 但我在文檔中插入了一個計數器,並意識到'count'總是增加而CSS-操作不起作用。所以該功能部分工作。 –

回答

0

移動var count = 1 outside(above)$('document')。ready()

+0

好主意,但不幸的是沒有解決問題。 我剛剛在文檔中插入了一個計數器,並意識到'count'總是增加,而CSS-操作不起作用。所以這個功能是部分工作的......你還有解決方案的想法嗎? –

相關問題