对于div.spot1
和div.spot2
我想要相同的行为-图像输入为空时隐藏删除按钮,上传图像时显示删除btn,上传图像时更改图像src,单击删除btn向服务器发送ajax请求等。当然我可以复制/将 spot1 的 js 代码粘贴到 spot2,只将类从 更改first
为second
. 但是假设我有 4 个这样的点,那么我的 js 文件中将有四个几乎相同的代码。我担心这不是最佳做法。我应该怎么办?
HTML:
<form class='upload' action="" method="POST" enctype="multipart/form-data">
<div class="spot1">
<span class='filename first'>FILE 1</span>
<button type='button' class='delete first'>❌</button>
<input type="file" name="image" class="input first" accept="image/*">
<input type="button" value="+" class="browse first"/>
<a href="{{ourl}}" class="fancybox" title="{{title}}"><img class="tn first" src="{{turl}}"></a>
<span class="status first"></span>
</div>
<div class="spot2">
<span class='filename second'>FILE 1</span>
<button type='button' class='delete second'>❌</button>
<input type="file" name="image" class="input second" accept="image/*">
<input class="browse second" type="button" value="+"/>
<a href="{{ourl}}" class="fancybox" title="{{title}}"><img class="tn second" src="{{turl}}"></a>
<span class="status second"></span>
</div>
</form>
JS的一部分(仅用于举例):
if ( $('.tn.first').attr('src') == "") {
...
}
$('.browse.first').on("click", function () {
$('.input.first').click();
});
$('.input.first').on('change', function () {
...
};