Valum的Ajax文件上传器 - 绑定到给定类的所有元素

时间:2012-07-10 07:13:41

标签: javascript jquery ajax

我正在尝试使用Valum的文件上传脚本(http://valums.com/ajax-upload/)来允许创建允许上传文件的链接。

我正在使用jQuery库。

使用标准文档在页面上获取一个链接很简单,但现在我希望能够捕获给定类的所有链接,而不是静态地分配给给定的元素。

此外,我的网站使用Ajax页面加载,因此我需要能够以某种方式将上传器分配给新的Ajax加载内容。

设想的用法是允许在加载Ajax的页面中创建这样的链接并让它触发上传器:

<a href="#" class="uploader">Upload a file</a>

我的第一个想法是使用jQuery live()方法来尝试绑定类,但我找不到合适的事件来触发。

有没有人遇到过这类问题?

1 个答案:

答案 0 :(得分:0)

不,遗憾的是<input type="file">并不容易。由于一些安全问题,IE(甚至是IE9!)只是不允许你用这个元素“摆弄”来对表单进行总结 - 当“点击”,“更改”或任何其他事件被人为引发时。

所以这个插件的工作方式不同。不是创建一个事件处理程序,将用户点击“重新路由”到动态创建的某个fileinput元素,而是围绕作为其目标的链接创建包装器结构 - 并且fileinput直接插入其中,被隐藏到足以让用户看不到它 - 但足以让浏览器在其上注册点击(在源代码中查看this method,并在this article查看详细信息)。

最重要的是,你不能在这里使用事件处理委托:唯一合理的方法是用这个插件包装新创建的元素。