gpt4 book ai didi

jquery-ui - 在 jQuery UI 模式对话框中重新加载(或重新初始化)Uploadify

转载 作者:行者123 更新时间:2023-12-04 06:34:01 24 4
gpt4 key购买 nike

我在 jQuery UI 模式对话框中使用 Uploadify,并且我使用 Ajax 提交数据。然后我可以重用模式对话框来上传更多文件。我现在几乎可以正常工作了,但这是我的问题。

当模态框第二次打开时,我使用 Uploadify 添加了一个文件,它在队列中出现了两次。如果我第三次打开模态框并添加一个文件,它将在队列中出现 3 次(依此类推)。

当我关闭模态对话框窗体时,我使用以下代码(从 jQuery UI 模态对话框的 Close 函数调用):

function DestroyUploadifyInstance(){
$('#image_nameQueue').remove();
$('#image_nameUploader').remove();
}

当我打开模态对话框时,我再次调用uploadify代码(这是从jQuery UI模态对话框的Open函数调用的):
function CreateUploadifyInstance(){
$('#image_name').uploadify({
'uploader' : 'uploadify.swf',
'script' : 'uploadify.php',
'cancelImg' : 'cancel.png',
etc

我觉得我快到了,因为即使显示了重复的文件,代码实际上也可以工作(它不会多次上传每个文件,只是一次)。

如何停止显示重复的队列项目?
谢谢。

最佳答案

Uploadify 将事件 uploadifySelect 的处理程序绑定(bind)到您调用它的元素,这会添加队列项。如果您没有在 DestroyUploadifyInstance 中取消绑定(bind),那么事件处理程序链将随着对 CreateUploadifyInstance 的每次调用而增长,这就是导致重复的原因。

function DestroyUploadifyInstance()
{
$("#image_name").unbind("uploadifySelect");
$('#image_nameQueue').remove();
swfobject.removeSWF('image_nameUploader');
}

这种销毁/重新初始化业务似乎仅在 IE 中是必需的,因为它在隐藏 Flash 对象时处理这些对象的方式,所以我会使其依赖于浏览器并坚持一个调用来为 FF、Chrome 等上传上传,而无需每次关闭对话框时都会“破坏”。

关于jquery-ui - 在 jQuery UI 模式对话框中重新加载(或重新初始化)Uploadify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com