2010-12-07 1 views
1

끝없이 클릭하면 끝없이 추가되는 추가 버튼이 있습니다. 이 버튼이 이것을 10 번하고 싶다고합시다.javascript로 append 함수에 제한을 어떻게 줄 수 있습니까?

나는 환상적인 코드로 당신에게 알려주지 : p 내 생각에 내가 실수로 배울 수있는 것; 당신의 변수 이름을 사용

thismany = 1; 

appendbutton.onClick = "thismany = +1"; 
if{ thismany = <9} 

appendbutton.onClick = disabled 

사전에 감사

+1

태그는 다른 SO 응답자의주의를 끄는 데 매우 중요한 역할을합니다. Javascript에서 질문하는 경우이를 포함하십시오. onclick, append, limit와 같은 태그는 다른 언어에도 유효합니다. – pyfunc

+0

@pyfunc : 죄송합니다. Javascript를 태그로 사용했다고 생각했습니다! 나에게 책임이있다 – Opoe

답변

2
(function(){ 
    var count = 1; 
    document.getElementById("the_node_id").onclick = function(){ 
     if(count > 10){ 
      return; 
     } 
     do_stuff(); 
     count ++; 
    }; 
})() 

업데이트 :

var count = 1; 
addEvent(append, "click", function(/* someargument */){ 
    if(count > 10){ 
     return; 
    } 
    // if you need arguments that are passed to the function, 
    // you can add them to the anonymous one and pass them 
    // to appendFunction 
    appendFunction(/* someargument */); 
    count++; 
}); 
+0

고마워, 내가이 코드를 단추로 가지고있다. addEvent (append, "click", appendFunction); 이 기능을 추가 할 수 있습니까? – Opoe

+0

@Opoe 'count'는 동일한 범위에서 증가해야합니다. 예제를 제공하도록 코드를 업데이트합니다. –

+0

와우 대단히 감사합니다! 내 코드에서 "var count ="가 더 많습니다. 아직 작동하지 않는 이유가 될 수 있습니까? – Opoe

1

(내가 그 잘못하지만 헤이 메신저 학습을 알고) :

var thismany = 0; 

appendbutton.onclick = function() { 
    if (thismany++ < 10) { 
    // append things 
    } 
}; 

을 변수 캡슐화 :

appendbutton.onclick = function() { 
    if (this.count == undefined) { 
    this.count = 0; 
    } 

    if (this.count++ < 10) { 
    // append things 
    } 
}; 
+0

고마워! 캡슐화 된 변수의 이점은 무엇입니까? :) – Opoe

+1

글쎄, 첫 번째 방법은 자체 내의 함수의 바깥 범위에서 변수를 사용하고, 두 번째는 자바 스크립트의 모든 함수 또한 객체이기 때문에 속성을 가질 수 있다는 사실을 사용합니다. 이 변수는 코드 내에서만 관련이 있으므로 외부 변수를 사용하면이 경우 바람직하지 않습니다. 예를 들어 리셋을 원할 경우 외부 변수를 사용하는 것이 더 나은 경우가 있습니다. – Orbling

+0

그래, 너의 도움을 위해 너 정말 고마워. :) – Opoe

1

이것은 곧은 자바 스크립트입니다. 또한 jQuery와 같은 프레임 워크를 살펴 보는 것이 더 편할 수도 있습니다.

버튼의 HTML에 특성으로 id="appendButton"이 있다고 가정합니다.

var count = 0; 
document.getElementById("appendButton").onClick = function(e) { 
    if(count >= 10) { 
      return false; 
    } 
    else { 
      count ++; 
      document.getElementById("id_of_thing_you_append_to").innerHTML += "Whatever you're appending"; 
    } 
} 
+0

은'onClick' 대신'onclick'이 아니 었나요? –

관련 문제