9

我正在尝试从 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>
4

4 回答 4

8

“ui.item”jquery 对象中返回的元素是 li 元素(在您的示例中)。您需要做的是获取它的子元素(a 标签)来访问属性并提取标签的值:

var menu = $('#menu');
$(document).ready(function(){
    menu.menu({
        select: function(event, ui) {
            alert(ui.item.children().attr('tag'));
        }
    });
});

http://jsfiddle.net/4bY7d/88/

于 2013-06-27T16:24:27.070 回答
1

尝试包裹在里面document.ready

$(document).ready(function(){

      $( "#menu" ).menu({  
          select: function( event, ui ) { alert(ui.item.attr("tag")); }
      });      
});  
于 2013-01-16T10:37:14.933 回答
0
$( "#menu" ).menu({select: function( event, ui ) {
    tag = ui.item.context.children[0].attributes.tag.value;
    alert (tag)
}});
于 2014-01-08T06:03:19.800 回答
0

这是因为没有加载文档。document.ready在函数内部编写脚本

$(document).ready(function(){

     //jquery code   
});  
于 2013-01-16T10:50:20.523 回答