我正在使用jQuery多文件上传插件,并将其封装在一个函数中,该函数在使用on()的select下拉列表中对更改事件进行调用。
它在第一次初始化时工作正常,但是在插件自动创建的div通过remove()删除之后就不能工作了。
与其使用remove(),我还尝试了detach(),希望它能保留一些我无法看到的插件功能,但这也不起作用。
插件函数
这将生成一个包含多个子div的容器div (#image_path_wrap)。
它是在链接到select下拉列表的on('change')事件上触发的。
function initMultipleFileUpload() {
$('#image_path').MultiFile({
STRING: {
file: '<em title="Click to remove" onclick="$(this).parent().prev().click()">$file</em>',
remove: '<img src="http://dummyimage.com/16x16/bdbdbd/ff0000&text=x" height="16" width="16" alt="x"/>'
}
});
}删除方法
这将移除自动生成的容器div。
$("#image_path_wrap").remove();jsFiddle
http://jsfiddle.net/rwone/RSbLc/
预期行为
插件应该重新初始化(即创建容器div和sub),第二次通过select下拉列表调用该函数。
电流行为
该插件在第二次通过select下拉列表调用时未能重新初始化。
发布于 2014-02-19 08:32:04
溶液
运行插件时,它会将初始输入字段移动到#image_path_wrap中。
当移除#image_path_wrap时,插件分配给的输入字段也会被删除。
因此,在remove()之后,我重新追加了所需的输入字段。
var input_constructor = "<input type=\"file\" id=\"image_path\">";
$('label#image_paths_label').after(input_constructor);jsFiddle
http://jsfiddle.net/rwone/RSbLc/42/
https://stackoverflow.com/questions/21863652
复制相似问题