У меня есть небольшое приложение с бэкэндом фляги и шаблонизатором jinja2.
В html у меня есть цикл, который объединяет в пакеты, создавая 3 столбца на странице:
{% for batch in df.iterrows() | batch(3) %}
<div class="row">
{% for row_id, row in batch %}
У меня есть несколько jQuery, чтобы получить элемент, на который щелкают в каскадном раскрывающемся списке.Цикл jinja2 заполняет раскрывающийся список, проходя по циклу данных.JQuery получает значение из html по идентификатору (как ul ul):
<ul id="model1" class="list-group">
В конечном итоге мне нужно три значения, по одному для каждого пакета.Однако код возвращает только самый последний элемент, по которому щелкнули.Причина этого в том, что я не могу понять, как заставить jQuery получать по одному элементу в пакете или каким-либо образом связать его с пакетом.Можно ли как-нибудь указать номер партии в идентификаторе ul?
$(document).ready(function(){
$('ul#menu li').hover(function(){
$(this).children('ul').delay(20).slideDown(200);
}, function(){
$(this).children('ul').delay(20).slideUp(200);
});
$('#model1 li').on("click", function(e){
e.stopPropagation();
e.preventDefault();
console.log('model1 ' + e.target.getAttribute('data-val'))
$("input[name=suggestion1]").val(e.target.getAttribute('data-val'));
});
//CODE is past here DOESN'T work but I left it in to give an idea
$('#model2 li').on("click", function(e){
e.stopPropagation();
e.preventDefault();
console.log('model2 ' + e.target.getAttribute('data-val'))
$("input[name=suggestion2]").val(e.target.getAttribute('data-val'));
});
$('#model3 li').on("click", function(e){
e.stopPropagation();
e.preventDefault();
console.log('model3 ' + e.target.getAttribute('data-val'))
$("input[name=suggestion3]").val(e.target.getAttribute('data-val'));
});
$("form").submit(function(){
var s1 = $("input[name=suggestion1]").val();
var s2 = $("input[name=suggestion2]").val();
var s3 = $("input[name=suggestion3]").val();
console.log(s1, s2, s3);
});
});