-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

1 回答 1

0

不要在创建按钮的函数调用中调用“alert('clicked')”(或单击按钮时要执行的任何操作),否则它将立即执行。相反,创建一个匿名函数并将调用包装在其中。例如

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

编辑:没有注意到您将按钮构建为 html 文本。在这种情况下,只需将要执行的代码(函数调用)作为文本传递。编辑了上面的代码以反映这一点。

于 2013-02-07T08:54:24.517 回答