2017-12-30 39 views
0

다른 버튼 중 적어도 한 번만 클릭하면 loadNext() 메서드를 한 번만 호출하고 싶습니다.버튼을 클릭 한 경우에만 메서드를 한 번만 호출하십시오 (최소한 한 번)

나는 체크 아웃 한 : Calling a Method Once

예를 들어, 내가 퀴즈 응용 프로그램을 질문하고 각 문제 유형에 대한 몇 가지 옵션을 가지고 있어요. 사용자는 옵션을 선택하고 다음 버튼을 눌러 다음 질문 (옵션 포함)을로드합니다 (배열에 미리 정의되어 있음). loadNext() 옵션을 두 번 이상 클릭해도 여러 번 호출하면 안됩니다.이 옵션 (버튼)의 onclick 메서드 내에서 loadNext()을 호출하지 않도록 방지하고 옵션을 선택하지 않으면로드하지 않습니다.

내 생각은 false으로 isClicked을 미리 정의하고, 이러한 옵션의 온 클릭 방법 안에 반전 같은 것입니다,하지만 작동하지

내가 무슨 짓을

, 지금까지 :.

question_and_options

var optButtons = $(".opt button"); 
var isClicked = false; 
optButtons.click(function() { 
     isClicked = true; 
     console.log("clicked on opt buttons: " + this.id); 
     console.log("Current button is: " + this.id + " set as active"); 
     //other stuffs 
    }); 

//some other stuffs 


if (isClicked) { 
console.log("Clicked once!"); 
     //other stuffs 
     loadNext(); 
    } else { 
     alert("Please select an option"); 
//browser is alerting very first time after opening `index.html` file 
// and Next button click isn't working after that 
     } 

사전에 감사드립니다. 나는 JS에서 새삼 스럽다.

+1

상태를 추적하는 대신 다음 버튼을 클릭 할 때 다른 버튼의 상태를 확인하기 위해 (isClicked)를 검사하는 다음 버튼에는 onclick 처리기가 필요합니다. – JasonB

답변

1

어떻게 종류의 일, 당신이 당신이 찾고 다시 '무엇을 할 것인가 당신의 다음 버튼

$("#next").on('click',function(){ 
    if(isClicked){ 
     loadNext(); 
     // Set isClicked to false to reset mechanism 
     isClicked = false; 
    } 
}); 

에 대한 id="next"이 가정은 어떻습니까? 이 방법으로 이해했습니다.

+0

다음 버튼의 onclick 안의'isClicked' 상태를 체크하는 것은 일을하고 있습니다! 고마워요 :-) –

0

옵션 버튼을 클릭 할 때 콘솔에 로그인하는 것은 Ok입니다. 그러나 다음 버튼의 onClick 수신기에서 단 하나의 옵션 만 클릭했는지 확인하십시오. 많은 번 다음 버튼을 클릭 확인하는 방법 전역 범위에서 변수를 만들 수 있습니다, 코드는 당신이 라디오 버튼을 사용하여 답을 추측

//function called on clicking the next button 
function abcd(){ 

    counter++; 
    if(counter!=-1){ 
    return; 
    } 
    else{ 
    //call the loadnext() 
    } 

} 
+0

카운터 == 1은 조건입니다 .. 그게 오타였습니다 .. –

0

입니다. 옵션에 대해 '라디오 버튼'을 사용할 수 있습니다. 온라인에는 충분히 많은 참고 자료가 있습니다. 그것이 귀하의 요구 사항에 부합하지 않는 경우 알려주십시오.

+0

참조 용으로 사용해보십시오; https://www.w3schools.com/jsref/dom_obj_radio.asp –