我正在使用jquery-filedrop拖放将文件上传到我的网站,但是我遇到了动态dropzone的问题。代码的设置方式有问题吗?该脚本适用于页面加载时存在的元素,但不适用于动态创建的元素。
这是我的模拟设置小提琴。
http://jsfiddle.net/seesoe/4qcfK/
这是js代码
$(document).ready(function() {
$('.cloneMeButton').live('click', function() {
$('.cloneMaster').clone().attr('class', 'dropzone').text("Dynamic Dropzone Clone").show().appendTo('body');
});
var dropzone = $('.dropzone');
dropzone.filedrop({
dragOver: function() {
$(this).removeClass('dropzone').addClass('dropzone_on');
},
dragLeave: function() {
$(this).removeClass('dropzone_on').addClass('dropzone');
},
drop: function() {
$(this).removeClass('dropzone_on').addClass('dropzone');
}
});
});
最佳答案
一个简单的被忽略的解决方案,将filedrop包装在函数中,并在每次添加事件时对其进行调用
http://jsfiddle.net/4qcfK/3/
$(document).ready(function() {
$('body').on('click', '.cloneMeButton', function() {
$clone = $('.cloneMaster').clone();
$clone.text("Dynamic Dropzone Clone").addClass('dropzone').show().appendTo('body');
fileDropIt($clone);
});
fileDropIt($('.dropzone'));
});