我在Symfony Project中使用Twig模板引擎工作。 我有一個form.html.twig文件,我有一個大表單,並且可以根據需要多次生成一個表單。 因此,當我按下「+」按鈕時,會出現一個新的子窗體。 此表單出現在prototype.html.twig文件中,其中存儲了表單的所有HTML,包含JS。如何檢查一個JS腳本是否沒有加載兩次或更多?
它看起來像:
<table class="table table-responsive table-bordered text-center" style="margin-bottom:0px;">
<tr class="active">
<td style="vertical-align:middle; padding-top:9px; padding-left:4px; padding-right:4px;"> <span style ="font-size: 24px;" class="glyphicon glyphicon-upload"></span></p> </td>
<td>{{ form_row(form.date) }}</td>
<td>{{ form_row(form.value) }}</td>
<td> {{ form_label(form.type, 'Value as % of') }}
{{ form_widget(form.type) }} </td>
<td>{{ form_row(form.frequency) }}</td>
<td>{{ form_row(form.duration) }} </td>
<td>{{ form_row(form.agreement) }}</td>
<td class="deleteButton" style="vertical-align:middle;"><a href="#"><button class="btn-sm btn-danger" style="border-radius:100%;"><span class="glyphicon glyphicon-remove"></span></button></a></td>
</tr>
</table>
<script>
$('.deleteButton').on('click', function(e) {
e.preventDefault();
$(this).parent().remove();
});
</script>
{% block javascripts %}
<script src="{{asset('js/endingDateCalculator.js')}}"></script>
{% endblock javascripts %}
看看阻止JavaScript的。在這個塊中,我有一個腳本來計算子表單中的結束日期。所以,一旦我點擊「+」按鈕出現一個新的窗體,並且腳本endingDateCalculator正在運行並連接到這個窗體。
我有點害怕,如果我多次點擊「+」,換句話說......如果我有超過1個子表單,這個腳本被一次又一次地調用,這會減慢頁面速度,或/和可以在同一時間工作的錯誤。
這是一次又一次的調用還是不是? 如果是的話,我該如何解決它? 我試圖將endingDateCalculator.js鏈接到form.html.twig(基本模板),但在這種情況下,當我生成新表單時,此腳本不起作用。