Как я могу дать ограничение на функцию добавления с помощью JavaScript? - PullRequest
2 голосов
/ 07 декабря 2010

У меня есть кнопка добавления, которая добавляется бесконечно, если вы нажимаете на нее бесконечно. Допустим, я хочу, чтобы эта кнопка делала это 10 раз.

Позвольте мне рассказать вам в фэнтезийном коде: p о чем я думал, чтобы я мог учиться на своих ошибках; (я знаю, что это неправильно, но эй, я учусь)

thismany = 1;

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

appendbutton.onClick = disabled

спасибо заранее

Ответы [ 3 ]

2 голосов
/ 07 декабря 2010
(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++; 
});
1 голос
/ 07 декабря 2010

Это прямой JavaScript. Вы также можете рассмотреть возможность использования такой инфраструктуры, как 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";
     }
}
1 голос
/ 07 декабря 2010

Использование имен переменных:

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
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...