所以我有具有以下结构jQuery的。对没有触发动态添加元素
<div class="editCampaignBanner">
<div>
<hr>
<label for="file">Upload a new image</label>
<input id="file" type="file" name="file" class="valid">
<label for="NewImageURLs">Link URL (Optional)</label>
<input id="NewImageURLs" type="text" value="" name="NewImageURLs">
<hr>
</div>
</div>
一个页面,我因此写了一些jQuery的:
$('div.editCampaignBanner input:file').on('change', function() {
var value = $(this).val();
var div = $(this).parent();
var html = '<div>'+ div.html() + '</div>';
if (value.length > 0) {
div.after(html);
}
else if ($(this) > 1) {
div.remove();
}
});
现在
<div class="editCampaignBanner">
<div>
<hr>
<label for="file">Upload a new image</label>
<input id="file" type="file" name="file" class="valid">
<label for="NewImageURLs">Link URL (Optional)</label>
<input id="NewImageURLs" type="text" value="" name="NewImageURLs">
<hr>
</div>
<div>
<hr>
<label for="file">Upload a new image</label>
<input id="file" type="file" name="file" class="valid">
<label for="NewImageURLs">Link URL (Optional)</label>
<input id="NewImageURLs" type="text" value="" name="NewImageURLs">
<hr>
</div>
</div>
但是,尽管该事件被重新:
,所以当我进入一个元素到文件时,它产生在上一个一个div使用.on()
注册,div中的第二个文件输入不会触发事件。我错过了什么?
没错,所以你用选择器绑定到文档上!太棒了! – Liam
由于您似乎无法删除'div.editCampaignBanner',因此您可以将它用作您的'on'而不是文档的基础。 –