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。