javascript - 动态事件上的 onchange 事件

标签 javascript jquery events onchange

我正在创建一个输入类型文件,代码如下

var ele=document.createElement("INPUT");
            ele.type="file";
            ele.id="ele"+i;
            $("#media").append("<br>");
            $("#media").append("<br>");
            $('#media').append(ele);
            $('#ele'+i).on('change',change());
function change()
{
     alert("hello");
}

问题是创建元素时 hello 会收到警报,为什么?

最佳答案

此行不正确:

        $('#ele'+i).on('change',change());

应该是:

        $('#ele'+i).on('change',change);

您正在调用该函数,而不是将该函数作为参数传递。

但是您不需要在附加每个元素后执行此操作。为新元素指定一个类,并使用事件委托(delegate):

$("#media").on("change", ".file", change); // Do this just once
function change()
{
     alert("hello");
}

var ele=document.createElement("INPUT");
ele.type="file";
ele.className = "file"
$("#media").append("<br>");
$("#media").append("<br>");
$('#media').append(ele);

关于javascript - 动态事件上的 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337989/

相关文章:

javascript - 移动设备上 'resize' 的替代方案是什么?

javascript - 隐藏 div 的导航栏

javascript - jQuery if/else 语句不起作用

javascript - Jquery Datetimepicker 禁用日期

javascript - d3 中的短路事件?

cocoa - 在Cocoa中,当鼠标被按住(但不移动)时,我的NSView如何接收事件?

JavaScript 闭包和范围问题

javascript - Angular Directive(指令) : return object from collection

javascript - setTimeout() 触发时间比预期早一点

javascript - 如果 div 高度为奇数,则将其舍入到最接近的偶数