2013-06-22 3 views
1

버튼이있는 웹 사이트를 개발 중입니다. 클릭하면 내용을 표시하고 다시 클릭하면 숨길 수 있습니다. 이제는 내 스크립트에서이 작업을 수행하므로 클릭 할 때 콘텐츠가 표시됩니다. 다시 클릭하면 숨겨 지지만 다시 클릭하면 아무 것도 나타나지 않습니다. 나는 그것에 대한 googled 및 on() 함수를 찾았지만 작동하지 않습니다. 도와주세요. 그 시도jQuery 2.x - .on 함수가 제대로 작동하지 않습니다.

$(document).ready(function() { 
    $('#togglecont').on('click', function() { 
     $('#content').load('content/main.html'); 
     $('#togglecont').click(function() { 
      $('#content').load('content/blank.html'); 
     }); 
    }); 
}); 
+7

시작과 비슷합니다 ... – elclanrs

+1

사용중인 코드를 이해하려고 시도 했습니까? 세 번째로 클릭하면 어떻게됩니까? –

+0

docs [jQuery.on] (http://api.jquery.com/on/)에서 :'.on()으로 바인드 된 이벤트를 제거하려면 .off()를 참조하십시오. 한 번만 실행하고 자체를 제거하는 이벤트를 첨부하려면 –

답변

0

:

$(function() { 
    var pages = ['content/main.html', 'content/blank.html'], 
     pageToggle = 0; 
    $('#togglecont').on('click', function() { 
     $('#content').load(pages[pageToggle]); 
     pageToggle = (pageToggle + 1) % 2; 
    }); 
}); 

때마다 :

$(document).ready(function() { 
    $('#togglecont').on('click', function() {  
     if (!$(this).data('uri') || $(this).data('uri') === "blank") $(this).data('uri', 'main'); 
     else $(this).data('uri', 'blank'); 
     $('#content').load('content/' + $(this).data('uri') + '.html'); 
    }); 
}); 
+0

감사합니다. 잘 작동합니다! – MLL

0

당신은 부하에 다음 페이지를 추적 할 변수를 사용할 수 있습니다 여기에

내 코드입니다 #togglecont을 클릭하면 pageToggle은 0과 1 사이를 "토글"하므로 yiel에 pages[pageToggle]이 표시됩니다. d 두 페이지 중 하나를 주기적으로 표시합니다.

jsfiddle은 외부 HTML 파일을 포함하는 방법을 모르기 때문에 대신 .load()을 사용해야했지만이 동작을 보여줍니다.

관련 문제