2013-02-07 51 views
-1

我有一個Javascript代碼,用於創建按鈕OnLoad,屬性是從數據庫中提取的ASP頁面的值。但是,無論我想要每個按鈕執行什麼事件,其他所有按鈕都會執行此操作,並在按鈕顯示之前執行。請幫助...獨立按鈕

function createButtons(tbID, tbClass, tbType, tbValue, onClick) { 
return '\n<input' 
       + (tbID ? ' id=\'' + tbID + '\'' : '') 
       + (tbClass ? ' class=\'' + tbClass + '\'' : '') 
       + (tbType ? ' type=\'' + tbType + '\'' : '') 
       + (tbValue ? ' value=\'' + tbValue + '\'' : '') 
       + (onClick ? ' onclick=\''+ onClick + '\'':'') 
       + '>'; 

} 


function DisplayButtons(cableData) { 

var newContent = ''; 

$.each(cableData, function (i, item) { 

newContent += createButtons(item.CommonCable, null, "submit",  item.CommonCable,alert("clicked")); 

}); 

$('#Categories').html(newContent); 

}

+4

其可怕的看到很多大寫字母!請編輯它以使其可讀 – 2013-02-07 08:47:37

+0

SO應該很快提供一個'.toLowerCase()'功能用於編輯。 – Shurmajee

+0

我只是希望能夠在按鈕顯示後獨立使用每個按鈕.... – Scelo

回答

0

不要叫「警報(‘點擊’)」(或要執行單擊您的按鈕時,任何行動)在函數調用中創建按鈕,或者它會立即執行。相反,創建一個匿名函數並將其包裝在其中。例如。

newContent += createButtons(item.CommonCable, null, "submit",  item.CommonCable,"alert('clicked')"); 

編輯:沒有注意到你建立按鈕HTML文本。在這種情況下,只需將要執行的代碼(函數調用)作爲文本傳遞即可。編輯上面的代碼來反映這一點。

+0

謝謝,現在按鈕被顯示並且事件不被同時執行。但我從我的aspx頁面得到一個錯誤:Uncaught SyntaxError:Unexpected token} – Scelo

+0

我現在把這段代碼,它不會提醒,我應該何時調用匿名函數? newContent + = createButtons(item.CommonCable,null,「submit」,item.CommonCable,function(){alert(「clicked」)}); – Scelo

+0

thanx男人,最後它的工作。我不得不玩弄引號 – Scelo