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中则不能。

最佳答案

您正在setAttribute上使用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。

10-07 21:24