2011-05-10 8 views
0

나는 이것을 이해하지 못하기 때문에 질문이 있습니다.Jquery 대기하고 더 많은 시간을 클릭하십시오

나는이 같은 jQuery로 다음 탭으로 구분 뭔가 게재하는 사이에 대기 할 : 나는 다음 탭을 클릭 될 경우 2 초 동안 대기 할 전망했습니다

$('#tabs ul .ui-corner-top').each(function(){ 
    setTimeout(function(){},2000) 
    $(this).children('a').click(); 
}); 

. 그러나 Timeout은 한 번만 시작되며 모든 hrefs는 대기하지 않고 즉시 클릭됩니다. 시간 초과 여기에 노력하고 있습니다

for (i=0;i<$('#tabs ul .ui-corner-top').size();i++) { 
    setTimeout('changeTab(i)',i*3000); 
} 

function changeTab(i) { 
    clearTimeout(timeout); 
    timeout=setTimeout(function(){ 
     $('#mainContent').masonry(); 
    }, 1500); 
    tablink='a[href*="#tabs-'+i+'"]'; 
    $(tablink).click(); 
} 

,하지만 난 이유를 모르는 :

은 그 때 나는 다른 무언가를 시도했다. 여기에서 나는 즉각적인 클릭만으로 문제를 해결할 수 있습니다. 다음 탭을 클릭하기 전까지 기다리지 않습니다.

누군가 도와 드릴까요? 사전에

감사

내가 완전히 이상한 물건을 썼다

.. 죄송합니다 ...이 내 실제 코드와 거의 작업입니다 :

for (i=0;i<$('#tabs ul .ui-corner-top').size();i++) { 
    tablink='a[href*="#tabs-'+i+'"]'; 
    setTimeout('changeTab(tablink)',i*3000); 
} 

function changeTab(tablink) { 
    $(tablink).click(); 
} 

그러나 그는 단지 세 번째 탭을 클릭한다 (# tabs-2) 3 번, 모든 탭이 아니라 한 번 (1,2,3) 내가 원하는 것. 그것을 설명하기 위해 : 나는 다음 클릭까지 기다리는 간격으로 탭 (jquery UI 탭) 사이를 자동으로 전환하려고합니다.

+0

성취하려는 것을 다시 말해 줄 수 있습니까? 그것은 당신의 질문에서 사생활이 아닙니다. 또한, 문자열이 아닌 함수를'setTimeout()'과'setInterval()'에 전달해야한다. –

+0

편집을 참조하십시오, 나는 당신이 무엇인지 알아 냈습니다. 'tablink' 변수를 실제로'changeTab'에 넘겨야합니다. 지금은 단지 문자열의 일부입니다. 전에 말했듯이 ** 문자열을'setTimeout' **에 전달하지 마십시오. –

답변

0

내가 묻는 내용을 이해한다면 ... 타이머를 사용하여 진행하고 싶은 탭 수가 많지만 쿼리가 너무 욕심 거리고 있습니다.

컬렉션에서 다른 오프셋을 사용하여 콜렉션을 호출하는 것이 좋습니다.

싸게, 당신은 ... 이런 식으로 뭔가를 할 수

var tabs = $(this).children('a'); 
    var numberOfTabs = tabs.length; 
    for (var item = 0; item < numberOfTabs; item++) 
    { 
     window.setTimeout(function(){tabs[item].click();},2000*item); 
    } 

당신은 JQuery와 검색어와 일치하는 결과의 배열을 반환, 그리고 타이머가 순차적으로 초기화되지 않습니다 것을 기억해야합니다. 타이머 선언은 정의 할 때 즉시 카운트 다운되기 시작합니다. JQuery에 각 결과가 동시에 활성화되도록 타이머를 시작하도록 요청했을뿐입니다.

+0

이것은 아주 좋은 것 같지만 '잡히지 않은 TypeError : 알 수없는 메소드'클릭 '을 호출 할 수 없습니다.'오류가 발생합니다. 탭에서 내가 '[ ​1​ , ​2​ , ​3​ ]' – user746916

+0

당신이 탭'처럼, 인덱스 [항목]'JQuery와 객체의 요소에 액세스 할 때, 당신이 돌아 오기 기본 DOM이 있습니다 요소가 아니라 jQuery로 래핑 된 DOM 요소입니다. '$ (tabs [item]). click()'을해야 할 것입니다. –

+0

이것이 어떻게 끝없는 반복이 될 수 있는지 알고 계십니까 ?? 첫 번째 탭에서 반복 ... 끝없는 루프? – user746916

관련 문제