Передача атрибутов из триггера JQuery-UI-ContextMenu в конструкцию меню
Я пытаюсь получить доступ к атрибутам тега DIV, который выступает в качестве триггера для контекстного меню JQuery-UI, но мне трудно.
В школьном контексте у меня будет имя ученика в тексте DIV, но мне также нужно будет пройти через идентификационный номер, возможно, используя атрибут data-pid HTML5 или ID DIV, если это необходимо.
Я не могу получить доступ либо и был бы очень признателен за некоторые рекомендации.
Я использую современную версию 1.12.0 Context Menu и JQuery 3.0.0.
Пожалуйста, смотрите ниже мой код. Заранее спасибо.
<div id="TheIDIWantToAccess" data-pid="AnotherWantedVariable" class="hasStudentContextMenu"><p>The inner text which is showing fine using $target.text()</p></div>
<script type="text/javascript">
$( document ).ready(function() {
$("#studentContextMenus").contextmenu({
delegate: ".hasStudentContextMenu",
preventContextMenuForPopup: true,
menu: []
,beforeOpen: function(event, ui) {
var $menu = ui.menu,
$target = ui.target;
$(this).contextmenu("replaceMenu",
[
{title: "<b>" + $target.text() + "</b>"}
,{title: "Award"
,children: [
{title: "1_Point", action: function(event, ui) { alert("1 point awarded: " + $target.text() + " (" + $target.id() + ")");}},
{title: "2_Points", action: function(event, ui) { alert();} },
]
}
]
);
}
,select: function(event, ui) {
//alert("select " + ui.target.attr("id"));
}
});
});
</script>
1 ответ
Решение
$target.id()
не является допустимым методом jQuery. использование $target.attr("id")
вместо. Также есть .data()
метод.