gpt4 book ai didi

javascript - iE9 事件中动态创建的元素不起作用

转载 作者:行者123 更新时间:2023-11-28 10:05:05 24 4
gpt4 key购买 nike

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,也许这就是它不起作用的原因。

但是您可以通过以下方式避免 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。

关于javascript - iE9 事件中动态创建的元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com