У меня есть одностраничное приложение, которое динамически заполняет div элементами списка, которые будут вызывать функцию при щелчке. Я пытаюсь динамически заполнить тег данных, а затем получить доступ к этому элементу добавленного списка.Доступ к динамически созданному тегу данных в приложении с одной страницей
Обратная косая черта в $ (\ # documents) существует, потому что это шаблон kendoUI, который вызывается моей функцией маршрута.
Функция построения дерева вызывается в функции успеха Ajax после того, как данные были получены с сервера. Любое понимание или помощь оцениваются !!!
function buildTreeView(tree, jobCode){
var treeHtml = "<div class='row'><div class='col-xs-12 col-sm-8 col-sm-offset-2'><div class='panel-group'><div class='panel panel-default'><div class='panel-heading'><h3 class='text-center'>View or Download Documents</h3></div><div class='panel-body'><ul class='list-group'>";
for(var i =0;i < tree.length;i++){
if(typeof tree[i] === 'object'){
for(var ind = 0;ind < tree[i].length; ind++){
//another element will be populated here
}
}else{
treeHtml += "<li class='list-group-item viewDoc' data-docName='"+tree[i]+"' data-jobCode='"+jobCode+"'>"+tree[i]+"</li>";
}
}
treeHtml += "</ul></div></div></div></div></div>";
$('\#documents').append(treeHtml);
}
$(document).on("click", ".viewDoc", function(){
var docName = $(this).data('docName');
var jobCode = $(this).data('jobCode');
console.log(docName);
console.log(jobCode);
});
ahervin , Благодарю за ваш ответ. Ваш код фактически привел меня к другому решению, которое, вероятно, будет полезно в будущем. Однако решение CodeLama было корнем моей проблемы. –
@KyleSuhan Да, не уверен, будет ли работать мой код сейчас, поскольку я устанавливаю данные с помощью капитализации. – ahervin
Это сработает, потому что, когда вы устанавливаете ключ, он нормализует ключ к нижнему регистру данных. Я добавлю изменение, чтобы показать, как я получил ваш код для работы до поиска проблемы с конкретным случаем. –