每当我按下页面上的文件上传按钮时,它都会触发页面上存在的所有文件上传按钮,每个按钮都有相同的类,所以我尝试应用 $(this) 选择器来限制对一个文件上传窗口的响应。
HTML
<div id="sectionInfo">
<div id="sectionWrap">
<div id="sectionInner">
<label class="inst head">Section 1</label>
<input class="textOver" type="text" name="sectionTitle1" value="<?php echo $title; ?>" placeholder="Section Title" onfocus="this.select();">
<label class="inst ib">Please enter any text you would like associated with the section.</label>
<textarea style="margin-top: 3px" name="sectionContent1" value="<?php echo $body; ?>" onfocus="this.select();" placeholder="Section Description"></textarea>
<label class="inst ib">Please upload the image associated with this section, .PNG required.</label>
<input type="file" style="visibility:hidden;" name="sectionImg1" class="upload" />
<input type="button" id="fileStyle" class="fSOver fileStyle" value="Upload Section Image!" />
</div>
</div>
</div>
这个块有多个实例化,站点管理员能够通过一些 javascipt 动态地将无限节点附加到页面,这就是我的问题所在。从可用性的角度来看,如果一个按钮单击为您的 30 个部分连续打开 30 个窗口,那将是一件令人讨厌的事情。
我现在的 JS 看起来像这样
$(function(){
$(document).on("click", '.fileStyle', function(){
$('.upload').click();
});
});
我将如何仅提示目标按钮的文件上传对话框?