1
var ibutton = document.createElement('input');
ibutton.setAttribute('type', 'button');
ibutton.setAttribute('name', 'button');
ibutton.setAttribute('value', 'Delete');
ibutton.setAttribute('onclick', "deleteImage('<?php echo $_FILES['dt_file']['name'];?>', this,'<?php echo $image_type;?>');return false;");`

上記のコードは、削除ボタンを作成します。これは、最後に作成されたボタンに対してのみ正常に機能します。

画像をクリックして選択すると、このボタンで画像が動的に作成されますが、画像をクリックして選択するたびに、イベントonclickは最後に作成されたボタンに対してのみ機能します。以前に作成されたすべての要素には、機能するイベントはありませんが、エラーは表示されません。

上記のコードは Mozilla では問題なく動作しますが、IE9 では動作しません。

4

1 に答える 1

0

setAttribute で eval を使用していますが、それが機能していない可能性があります。

ただし、次のような方法で eval を回避できます (そうすることをお勧めします)。

var ibutton = document.createElement('input');
ibutton.setAttribute('type', 'button');
ibutton.setAttribute('name', 'button');
ibutton.setAttribute('value', 'Delete');
ibutton.onclick = function() { deleteImage.apply(this, '<?php echo $_FILES['dt_file']['name'];?>', this,'<?php echo $image_type;?>');return false };`

使用thisする場合は、deleteImage 関数内の ibutton を参照します。

于 2011-12-15T13:44:52.430 に答える