-1

ボタン OnLoad を作成する Javascript コードがあり、属性はデータベースからフェッチする 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 に答える