我有一个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);
}
答案 0 :(得分:0)
在创建按钮的函数调用中,不要调用“alert('clicked')”(或者在单击按钮时要执行的任何操作),否则它将立即执行。相反,创建一个匿名函数并将调用包装在其中。 E.g。
newContent += createButtons(item.CommonCable, null, "submit", item.CommonCable,"alert('clicked')");
编辑没有注意到您将按钮构建为html文本。在这种情况下,只需将要执行的代码(函数调用)作为文本传递。编辑上面的代码来反映这一点。