私はページにボタンを追加する機能を持っています。要素innerHTMLでイベントリスナーを取り除く
var count = 0;
function createOnclickFunction(number)
{
return function()
{
alert("This is button number " + number);
}
}
function addButton(data)
{
var newbutton = "..." //creates string from data
var element = document.getElementById("mydiv");
var children = element.children;
element.innerHTML = newbutton + element.innerHTML;
var currentCount = count;
children[0].onclick = createOnclickFunction(currentCount)
count++;
}
基本的に、データに基づいてHTMLにボタンを作成します。
私はボタンを追加するたびに、私はそれがDIV #mydiv
の先頭に追加されたい、とnewbuttonもElement
が、String
ないので、私は最初にそれを追加するinnerHTMLプロパティを変更する必要があり#mydiv
その後、最初の子を#mydiv
にすることによって、(onclickを追加するために)要素を取得する必要があります。
ただし、ページに2番目のボタンを追加すると、最初のボタンがクリックされなくなります。
ボタンを1つだけ追加するようにコードを変更すると、すべて正常に動作します。
これで、トップボタン(最新の追加ボタン)のみをクリックできます。
どうすればこの問題を解決できますか?
また、element.children[0]
の代わりにelement.firstChild
を使用しようとしました。
ありがとうございます!
編集:ここでは
はjsfiddleです:
https://jsfiddle.net/7c7gtL26/
は内容を挿入するために、 'innerHTML'を使用しないでください。あなたのコードは間違っています。最初は "うまくいきます"という方法はありません。 – Oriol
問題のためにフィドルを作成できますか? – Prashant
@Oriolこれは影響しますか? –