div.spot1
同じ動作が必要です-画像入力が空の場合div.spot2
は削除ボタンを非表示にし、画像がアップロードされたときに削除ボタンを表示し、画像がアップロードされたときに画像srcを変更し、削除ボタンをクリックしてajaxリクエストをサーバーに送信します。もちろんコピー/クラスを からfirst
に変更するだけで、spot1 の js コードを spot2 に貼り付けますsecond
。しかし、このようなスポットが 4 つあるとすると、js ファイルにはほぼ同じコードが 4 つあることになります。それはベストプラクティスではないのではないかと心配しています。私は何をすべきか?
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 () {
...
};