Jquery:多文件插件在 IE7 上失败

发布于 2024-08-24 04:20:02 字数 1107 浏览 5 评论 0原文

我正在使用这个插件 http://www.fyneworks.com/jquery/multiple -file-upload/ 创建邮件附件系统,但在 IE7 上执行失败。

这是我的代码:

$(".attachFile").live("click",function(){
    var id ="#"+$(this).parent().parent().attr("id");
    $(id + ' #attach').MultiFile({
        onFileAppend: function(element, value, master_element){ 
        $("#"+id + ' .attach-list').append('<li>onFileAppend - '+value+'</li>') 
        var options = { 
            url:       '/setAttach',         // override for form's 'action' attribute 
            type:      'POST'        // 'get' or 'post', override for form's 'method' attribute 
        }; 

        // bind to the form's submit event 
        $("#"+id + ' #uploadForm').submit(function() {

           $(this).ajaxSubmit(options); 

           return false; 
        });
    }, 
    afterFileAppend: function(element, value, master_element){ 
     $("#"+id + ' #uploadForm').submit();
    }
});
});

当用户单击悬停链接以附加文件时会触发此事件。 我做错了什么有什么线索吗?

谢谢

I'm using this plugin http://www.fyneworks.com/jquery/multiple-file-upload/ to create a mail attach system, but it is failing to execute on IE7.

Here's my code:

$(".attachFile").live("click",function(){
    var id ="#"+$(this).parent().parent().attr("id");
    $(id + ' #attach').MultiFile({
        onFileAppend: function(element, value, master_element){ 
        $("#"+id + ' .attach-list').append('<li>onFileAppend - '+value+'</li>') 
        var options = { 
            url:       '/setAttach',         // override for form's 'action' attribute 
            type:      'POST'        // 'get' or 'post', override for form's 'method' attribute 
        }; 

        // bind to the form's submit event 
        $("#"+id + ' #uploadForm').submit(function() {

           $(this).ajaxSubmit(options); 

           return false; 
        });
    }, 
    afterFileAppend: function(element, value, master_element){ 
     $("#"+id + ' #uploadForm').submit();
    }
});
});

This event is fired when user clicks hover a link to attach files.
Any clues for what I'm doing wrong?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

折戟 2024-08-31 04:20:02

我认为这是由于 jQuery 1.7 中的一个错误:
http://bugs.jquery.com/ticket/10570

使用的 MultiFile 插件:
$("输入[类型=文件].multi").MultiFile();

从而导致 IE7 中出现权限被拒绝的 bug。

可能的解决方案是将 jQuery 升级到 1.8。

I think it's due to a bug in jQuery 1.7:
http://bugs.jquery.com/ticket/10570

The MultiFile plugin used:
$("input[type=file].multi").MultiFile();

Thus cause a permission denied bug in IE7.

Possible solution would be upgrade jQuery to 1.8.

淡莣 2024-08-31 04:20:02

cmedeiros,我是相关插件的开发人员。
您预计会发生什么?你看到了什么?

我知道你说它无法执行,但是在哪一点呢?

cmedeiros, I'm the developer of the plugin in question.
What do you expect to happen? And what do you see instead?

I know you said it fails to execute, but at which point?

鹤舞 2024-08-31 04:20:02

我找到了一个解决方案,首先在 DOM 中创建元素,然后将 MultiFile 绑定到它,最后将其附加到屏幕:

var e = $("<div id=\""+id+"\" class=\"inner-center compose hidden\">"+$("#form").html()+"</div>");

$('#attach',e).MultiFile({ ... ACTIONS ... });

$(".middle-center").append(e);

效果很好。

I found a solution, first create the element in the DOM, then bind MultiFile to it, and in the end append it to the screen:

var e = $("<div id=\""+id+"\" class=\"inner-center compose hidden\">"+$("#form").html()+"</div>");

$('#attach',e).MultiFile({ ... ACTIONS ... });

$(".middle-center").append(e);

Worked very well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文