2010-12-07 148 views
1

我有一個追加按鈕,如果無限地點擊它,它將無限追加。 可以說我想要這個按鈕來做這10次。我怎樣才能給JavaScript的附加功能的限制?

讓我告訴你在幻想代碼:p我在想什麼,以便我可以從我的錯誤中學習; (我知道它錯了,但嘿即時學習)提前

thismany = 1; 

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

appendbutton.onClick = disabled 

感謝

+1

標籤在獲得其他SO回答者的注意力方面發揮着非常重要的作用。如果您在Javascript中提出一個問題,請包括該問題。像onclick,append,limit這樣的標籤也適用於其他語言。 – pyfunc 2010-12-07 18:51:36

+0

@pyfunc:對不起,我以爲我確實把Javascript作爲標籤!歸咎於我 – Opoe 2010-12-07 18:57:17

回答

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++; 
}); 
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 2010-12-07 19:35:10

+1

那麼,第一個方法在函數的外部範圍內使用變量,第二個方法使用的事實是,在Javascript中的所有函數也是對象,因此能夠具有屬性。該變量僅在代碼中相關,因此在這種情況下使用外部變量是不可取的。有些情況下使用外部變量會更好,如果您想要重置例如。 – Orbling 2010-12-07 20:08:06

1

這是直的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"; 
    } 
}