2013-01-16 9 views
9

Próbuję uzyskać atrybut niestandardowy z zdarzenia menu interfejsu JQuery UI. Nie wiem, kiedy próbuję wykonać poniższy skrypt.Jak uzyskać informacje o atrybutach z menu JQuery UI wybierz zdarzenie

$("#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> 

Dziękuję.

Aktualizacja: dodano pełny kod w przypadku, gdy łączę źle, jestem nowy w jQuery. Próbowałem owijania $ (document) .ready jako zalecane, ale wciąż się niezdefiniowany

<!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> 

Odpowiedz

1

spróbować zawinąć wewnątrz document.ready

$(document).ready(function(){ 

     $("#menu").menu({ 
      select: function(event, ui) { alert(ui.item.attr("tag")); } 
     });  
}); 
+0

Próbowałem swoje sugestie, ale wciąż się niezdefiniowany . – user1983108

+0

tak samo tutaj jest niezdefiniowany. – May

+0

@mbaylis napisał poprawną odpowiedź, nie rozumiem dlaczego Kanishka ma 2 głosy ... –

0

Wynika to z tego dokumentu nie jest załadowany. Napisz skrypt wewnątrz document.ready funkcji

$(document).ready(function(){ 

    //jquery code 
}); 
7

Element zwrócony w "ui.item" obiekt jQuery jest element li (w przykładzie). Co trzeba zrobić, to jest to element podrzędny (the tag), aby uzyskać dostęp do atrybutu i wyodrębnić wartość tagu:

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

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

0
$("#menu").menu({select: function(event, ui) { 
    tag = ui.item.context.children[0].attributes.tag.value; 
    alert (tag) 
}}); 
Powiązane problemy