我正在尝试从JQuery UI菜单选择事件中获取自定义属性。当我尝试下面的脚本时,我得到了未定义。
$( "#menu" ).menu({
select: function( event, ui ) { alert(ui.item.attr("tag")); }
});
HTML
<ul id="menu" style="position:absolute;">
<li><a href="#" tag="something">Aberdeen</a></li>
<li><a href="#" tag="some">Ada</a></li>
<li><a href="#" tag="something1">Adamsville</a></li>
<li><a href="#" tag="something2">Addyston</a></li></ul>
谢谢。
更新:添加完整代码以防我链接错误,我是jQuery的新手。我尝试使用$(document).ready按照推荐包装,但仍然未定义
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script>
$(document).ready(function(){
$( "#menu" ).menu({
select: function( event, ui ) { alert(ui.item.attr("tag")); }
});
});
</script>
</head>
<body>
<ul id="menu" style="position:absolute;">
<li><a href="#" tag="something">Aberdeen</a></li>
<li><a href="#" tag="some">Ada</a></li>
<li><a href="#" tag="something1">Adamsville</a></li>
<li><a href="#" tag="something2">Addyston</a></li></ul>
</body>
</html>
答案 0 :(得分:8)
“ui.item”jquery对象中返回的元素是li元素(在您的示例中)。你需要做的是获取它的子元素(a标签)来访问属性并提取标签的值:
var menu = $('#menu');
$(document).ready(function(){
menu.menu({
select: function(event, ui) {
alert(ui.item.children().attr('tag'));
}
});
});
答案 1 :(得分:1)
尝试换入document.ready
$(document).ready(function(){
$( "#menu" ).menu({
select: function( event, ui ) { alert(ui.item.attr("tag")); }
});
});
答案 2 :(得分:0)
这是因为未加载文档。
将脚本写在document.ready
函数
$(document).ready(function(){
//jquery code
});
答案 3 :(得分:0)
$( "#menu" ).menu({select: function( event, ui ) {
tag = ui.item.context.children[0].attributes.tag.value;
alert (tag)
}});