2016-10-25 4 views
1

다른 스레드를 확인했지만 코드와 관련된 응답을 찾을 수 없습니다. 내 문제는 그것을 완벽하게 작동 포인트, 두 번째 클릭 만 화재 내 클릭 이벤트입니다 (두 번째 클릭이 열리고, 세 번째 클릭이 닫히고 네 번째가 열립니다 등)jQuery 클릭은 두 번째 클릭 만하면 발생하지만 처음에는 실행되지 않습니다.

$('.expand-btn').click(function() { 
     var clicks = $(this).data('clicks'); 
     if (clicks) { 
     $('.expand-wrapper').animate({ 
      right: "0" 
     }, 500, function() { 

     }); 
     } else { 
     $('.expand-wrapper').animate({ 
      right: "-325px" 
     }, 500, function() { 

     }); 
     } 
     $(this).data('clicks', !clicks); 
    }); 

편집 : 여기 내 HTML 코드는 . this jquery plugin처럼 작동합니다. .expand-wrapper은 화면에서 숨겨진 문의 양식이며 .expand-btn은 화면의 측면에있는 작은 플랩입니다.

<div class="expand-wrapper"> 
    <a href="#" class="expand-btn"><i class="fa fa-envelope-o" aria-hidden="true"></i> Contact</a> 
    <div class="expand-form"> 
     <?php echo do_shortcode('[contact-form-7 id="2173" title="Home 01 Request_no_title"]'); ?> 
    </div> 
</div> 
+1

당신을 수행 'data-clicks' 속성에 대한 초기 값을 설정 했습니까? 그렇지 않다면'$ (this) .data ('clicks') 속성을 사용하여 처음 클릭 할 때까지 설정되지 않은 것처럼 들리도록 설정하는 것이 좋습니다. –

+0

네 말이 맞아. 내가 처음 클릭 할 때'-325px'로'right'를 설정합니다. 나는이 시점에서 조금 명단이다; how/what/where 어디에서 데이터 클릭 수를 설정합니까? – VCP

+0

왜 href에 onclick 속성을 넣지 않고 href를 제거하지 않고 그냥 간단한 앵커 태그 – Araz

답변

0

이것은 당신의 data-clicks 속성이 당신의 요소에서 초기화되지 않는 문제 같은 소리 (첫 번째 클릭의 마지막에 설정 될 때 다음이 예상대로 작동하도록 나타납니다).

다음과 같이 .expand-btn 요소를 초기화하십시오 :

<a href="#" class="expand-btn" data-clicks='false'>...</a> 

을 아니면 버튼 요소를 여러 확장 한 경우 페이지가로드 될 때, 당신은 사용하여 초기화 할 수 있습니다 jQuery를 :

$(function(){ 
    $('.expand-btn').data('clicks',false); 
}); 
+0

을 추가했지만 작동하지 않았습니다. 내 코드를 업데이트하고 HTML을 추가했습니다. 당신이 촬영 한 것과 다르게했을 수도 있습니다. – VCP

+0

내 원래 응답이 잘못된 요소 (예 : 'expand-btn'과 반대되는 'expand-button')를 가리키고 있음이 분명합니다. 최근 코드 스 니펫을 사용하여 예제를 추가 했으므로 도움이 될 것입니다. –

+0

흠, 그래서 아직 아무것도 추가하지 않았습니다. 난 그냥 내 코드 (첫 번째 블록'-325px'를 얻는다면, 두 번째는'0'을 얻는다)의 값을 변경하면 임시 해결책을 찾아 냈다. – VCP

관련 문제