2012-12-19 2 views
0

누군가이 코드를 수정하도록 도와 줄 수 있습니까? 내가 원했던 것은 sliddingright 기능이 완료 될 때까지 라이브 ('click') 기능을 차단하는 것입니다.해당 기능이 끝나지 않을 때까지 실시간 클릭 이벤트를 차단 하시겠습니까?

('li.menu-item').live('click', function(event){ 
    if(!$(this).is(':animated')) 
    { 
    sliddingright(page_id_target_right,previous_right_old,previous_right,next_right,pages_numbers); 
    } 
}); 
+0

가'콜백을 받아 sliddingright' 수 있습니까? – Jeff

+0

콜백이 무슨 뜻인지 잘 모르겠지만 가능하다. – Romain

+0

jsfiddle.net/K2xZB/85/ – Romain

답변

2

그냥있는 기능이 작업을 완료되면, '대기'를 반환하여 slidingright 함수에 return 문을 추가 저장하고 '클릭'다음 번에 그 값을 확인 라는.

과 같이 :

var state = 'standby'; 
('li.menu-item').live('click', function(event){ 
    if(!$(this).is(':animated') && state == 'standby') 
    { 
     state = 'processing'; 
     state = sliddingright(page_id_target_right,previous_right_old,previous_right,next_right,pages_numbers); 
    } 
}); 
+0

답변 해 주셔서 감사합니다. 귀하의 솔루션을 시도했지만이 경우 제 경우에는 작동하지 않습니다 ... $ (문서) .ready (function() { var state = 'standby'; $ ('li.menu (': 애니메이션') && 상태 == '대기') { 상태 = '처리 중'; (처리 중) : 라이브 ('클릭', 기능 (이벤트) { 상태 = sliddingright (page_id_target_right, previous_right_old, previous_right, next_right, pages_numbers) } }); sliddingright 함수의 끝에서 내가 문제가있는 "대기"상태 – Romain

+0

를 반환하고있어 나의 sliddingright 기능으로, I 상태를 "대기 중"으로 보냅니다. 애니메이션이 완료되지 않았습니다 – Romain

+0

나는 문제를 해결, 나는 추가 : \t \t \t \t state = 'standby'; 반환 상태; 내 미끄럼 쇠락 기능에서 마지막으로 움직이는 동작 – Romain

0

시도 :

clickMe = function() { 
$('li.menu-item').live('click', function(event) { 
    $('li.menu-item').off('click'); 
    sliddingright(page_id_target_right, previous_right_old, previous_right, next_right, pages_numbers); 
}); 
    $('li.menu-item').on("click", clickMe); 
};​ 
관련 문제