2013-01-16 13 views
9

Sto cercando di ottenere un attributo personalizzato da un evento di selezione del menu dell'interfaccia utente JQuery. Divento indefinito quando provo a fare lo script qui sotto.Come ottenere informazioni sugli attributi da un menu dell'interfaccia utente di JQuery selezionare l'evento

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

Grazie.

Aggiornamento: aggiunto il codice completo in caso di collegamento errato, sono nuovo di jQuery. Ho provato avvolgimento con $ (document) .ready come raccomandato, ma ancora ottenere undefined

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

risposta

1

prova per avvolgere dentro document.ready

$(document).ready(function(){ 

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

ho provato il tuo suggerimento, ma ancora ottenere indefinita . – user1983108

+0

sì lo stesso qui è indefinito. – May

+0

@mbaylis ha scritto la risposta corretta, non capisco perché Kanishka ha ottenuto 2 voti ... –

0

Questo perché il documento non è caricato. scrivere la sceneggiatura all'interno della funzione di document.ready

$(document).ready(function(){ 

    //jquery code 
}); 
7

L'elemento restituito nel "ui.item" oggetto jQuery è l'elemento li (nel tuo esempio). Quello che dovete fare è ottenere che sia elemento figlio (il tag) per accedere l'attributo e estrarre il valore del tag:

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) 
}}); 
Problemi correlati