Я использую редактируемый выбор JQuery в проекте Django, чтобы сделать виджеты выбора доступными для поиска.
Когда я вызываю другой шаблон, содержащий поля выбора, с помощью Ajax, сценарий не будет применяться, если Я использую:
$.getScript("https://rawgit.com/indrimuska/jquery-ed ... ect.min.js").then(() => {}
Проблема в том, что рендеринг Ajax становится очень медленным и случайным.
Есть ли способ кэшировать скрипт в родительском шаблоне и загрузить его только один раз, чтобы я мог повторно использовать его при рендеринге дочернего шаблона?
Вот мой вызов AJAX для родительского шаблона:
$.ajaxSetup(
{
data: {select_update_record_project_id: sales_documents_id ,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
});
$.ajax({
type: "GET",
url: "/my_url/",
cache: true, // I have tried both true and false
beforeSend: function(){
$('#div_master_sales_documents_edit').empty()
},
success: function (data) {
$.getScript("https://rawgit.com/indrimuska/jquery-ed ... ect.min.js").then(() => {
$("#div_master_sales_documents_edit").html(data);
});
}
});
}
Вот мой дочерний шаблон, отображаемый после вызова Ajax:
// this is where you apply the editable-select to select widgets
var list_selectbox_ids = ['sales_documents_editable_select_description_1','sales_documents_editable_select_description_2','sales_documents_editable_select_description_3'];
for (let i = 0; i < list_selectbox_ids.length; i++) {
$('#' + list_selectbox_ids).editableSelect({effects: 'fade'}).on('select.editable-select', function (e, li) {
populate_sales_documents_selected_product($('#' + list_selectbox_ids).attr('id'), li.text(), li.val())
});
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-django