【发布时间】:2012-02-04 05:30:26
【问题描述】:
所以我得到了一个使用 AJAX 动态加载的对话框,在该框中,我有一个文件输入被 Valums qq.FileUploader 替换。加载内容后,我确实在 FileUploader 上调用了 init,我的输入框被 FileUploader 正确替换。
如下图所示,输入被所有内容替换,新的“隐藏”输入就在那里。问题是我不能点击它。但是,我可以正确拖放文件。因此,上传仍然有效,但只能拖放。这已经在 Windows 上使用 Chrome 和 Firefox 进行了测试。
见Valums qq.FileUploader doesn't work when it's initialized after loading button by ajax
编辑:对话框代码不是jQuery UI,它是自定义代码,基本上,我在打开对话框时触发一个事件,并绑定在该事件上以执行FileUploader代码。
编辑 2:所以我尝试在弹出窗口后使用 1 秒的超时来执行 FileUploader 代码,但仍然不行。还尝试使用 z-indexes,但不行。
编辑 3:几周后它仍然无法正常工作。我似乎无法找到这个问题的原因。这里有两张图片说明了“隐藏”文件上传的位置(红色)。并且它在外部有效,但在对话框内部无效。
这是在一个对话框之外,它工作得很好:
这是完全相同的形式,但在对话框中,但这不起作用:
编辑 4:只需使用我的代码设置一个 JSFiddle:http://jsfiddle.net/G5qP6/6/
但是,如您所见,它在 JSFiddle 中运行良好,这让我想知道,为什么它在我的应用程序中不起作用。
【问题讨论】:
-
您的对话框是否嵌套在
<form>中?我在 gc 检查器中没有看到。 -
是的,它在
-
补充一下我之前的评论,当我在对话框中有上传表单时,我在外面没有上传表单。
-
澄清我之前的评论。我从来没有同时打开 2 个上传表单。
-
@jValdron 无论如何,您可以在某处发布此示例,以便我看一下?当放置在对话框中时,我有相当一部分小部件无法正常工作。
标签: javascript jquery ajax file-upload