我有类似的东西:
$('input[type=file]').on('change', function(){
console.log('changed!'); });
它不起作用。它适用于其他表单元素,但不适用于 input[type=file]。但是,当我将 .on() 函数更改为 .live() 时,它工作正常。我使用 jQuery 1.8.3,但我想升级到 1.9.0,这样就不会再有 .live() 函数了。有任何想法吗?
我有类似的东西:
$('input[type=file]').on('change', function(){
console.log('changed!'); });
它不起作用。它适用于其他表单元素,但不适用于 input[type=file]。但是,当我将 .on() 函数更改为 .live() 时,它工作正常。我使用 jQuery 1.8.3,但我想升级到 1.9.0,这样就不会再有 .live() 函数了。有任何想法吗?
“开”适用于 jquery 1.8.3。您可以尝试此代码并检查下面的演示,该演示适用于我的 jquery 1.8.3。
$('input[type="file"]').on('change', function(event){
console.log('changed!');
});
试试这个:演示
我有理论:
您确定您的选择器$('input[type=file]')实际上正在检索任何元素吗?如果您将输入动态插入到 DOM 中,则很有可能在运行选择器时它们不存在,这可以解释.live的工作原理。
尝试使用这段代码:
$('body').on('change', 'input[type=file]', function(event){
console.log('Changed!');
});
如果它有效,你就发现了你的问题......你在元素存在之前选择它们并在代码运行后将它们插入到 DOM 中。
你也可以试试
$('input:file').on('change', function(event){
console.log('changed!');
});