ОБНОВЛЕНО -
У меня есть «index.js», этот скрипт отображается в Index.cshtml.
Index.cshtml имеет <div id="main"> *KendoPanelBar here* </div>
Я успешно загрузил свой частичный вид на панель в main-div.
«MyPartialView.cshtml» имеет: <div id="menu"></div>
В index.js я пытаюсь console.log($("#menu"));
Выходные данные: jQuery-объект длиной 0 .
«MyPartialView.cshtml» находится в той же папке, что и «Index.cshtml» (элементы из «Index.cshtml» могут быть успешно выведены).
Как прокомментировал @Guillaume: скрипт должен запускаться после визуализации представления!
Моя настоящая цель - динамически поместить KendoMenu в меню div, которое находится в KendoTemplate в MyPartialView.
Для получения MyPartialView я сделал:
mainDiv.append({
text: "Group1",
encoded: false,
contentUrl: "\MyPartialView" //that successfully put the partial view where I want it
});
Как прокомментировал @Rory, мне нужно получить доступ к элементам в MyPartialView, когда / после вызова AJAX успешно .
Поэтому я изменил contentUrl:...
на content: '<div id="partialHere"><div>'
и попытался загрузить частичное представление в этот div:
$.ajax({
type: "POST",
url: myUrl,
success: function (partialView) {
$("#menu").kendoMenu({ //does not apply
dataSource: [{
text: "<span class=\"k-icon k-i-more-horizontal\"></span>", encoded: false, items: [
{ text: "<span class=\"k-icon k-i-edit\"></span><span>Edit</span>", encoded: false },
]
}]
});
//dosth
$("#groupContent").html(partialView); //adding PartialView to DOM
console.log($("#menu")); //even after adding to DOM, the output is a jQuery-object with length of 0
}
});
PartalView загружается в div как есть. Но изменения, которые я делаю в меню div, не применяются.
Что я делаю не так?