2

状況:

  1. document.createElementを使用してボタンオブジェクトを作成します
  2. onclickイベントを直接割り当てます。例:button.onclick = showResult;
  3. ボタンinnerHtml/append imgノード(両方を試しました)を変更して、その中に虫眼鏡pngアイコンを配置します。
  4. evtパラメーターを受け取るshowResult関数を定義してから、ターゲットのtagName属性を取得しようとしますが、アイコンをクリックすると、「BUTTON」ではなく「IMG」が返されます。

スニペットは次のとおりです。

td = document.createElement( 'td' );
btn = document.createElement( 'button' );
btn.type = "button";
btn.onclick = showResults;
btn.innerHTML = '<img src="../img/mag.png" />';
td.appendChild( btn );

そして機能

function showResults( evt ) {
    console.log( evt.target.src );
}

私はこの条件を使用してこれを修正しました:

var btn = evt.target == 'BUTTON' ? evt.target : evt.target.parentNode;

しかし、私は本当にそれが好きではありません、あなたが私の目を向けることができるこの振る舞いについての回避策または何かがありますか?

4

1 に答える 1

1

これがお役に立てば幸いです

var btn = document.getElementById('btn');
btn.onclick = function(e) {
    clickedButton = e.currentTarget;
    console.log(clickedButton);
}​

http://jsfiddle.net/Kohver/RD3Zg/を確認してください

于 2012-12-18T19:14:40.407 に答える