Używam Bootstrap i mam następujące menu rozwijane:
<div class="btn-group">
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
number of rooms
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>
<a href="#" >1</a>
</li>
<li>
<a href="#" >2</a>
</li>
<li>
<a href="#" >3</a>
</li>
<li>
<a href="#" >4</a>
</li>
<li>
<a href="#" >5</a>
</li>
</ul>
</div>
Chcę uzyskać zaznaczony tekst po kliknięciu na pozycję z rozwijanego menu. Próbowałem :
$(".dropdown-menu :selected").text();
$(".dropdown-menu option:selected").text();
$(".dropdown-menu").find("option:selected").text();
$(".dropdown-menu li a").text(); //returns 12345
$(".dropdown-menu > .active").text();
...
ale to nie działa, co robię źle?
EDYTOWAĆ W rzeczywistości jestem zupełnie nowy w JavaScript (jestem programistą java). Używam Backbone i chciałbym mieć coś takiego:
window.RoomView = Backbone.View.extend({
events : {
"click .dropdown-menu" : "test"
}
test : function(){
//display selected text
}
Odpowiedzi:
7 dla odpowiedzi № 1Zależy to od tego, czy chcesz uzyskać tekst w istniejącej funkcji, czy w ogóle:
$(".dropdown-menu a").click( function () {
var text = $(this).text();
});
Nie jestem ekspertem od szkieletu, ale może ...
events : {
"click .dropdown-menu a" : "test"
}
test : function(){
//display selected text
var text = $(this).text();
}
2 dla odpowiedzi nr 2
Po prostu to zrób.
$(".dropdown-menu li a").click(function() {
alert($(this).text());
});
2 dla odpowiedzi nr 3
"click .dropdown-menu a" : "displayRoomConfigForms"
displayRoomConfigForms: function(event){
var text = $(event.currentTarget).text();
}
zrobiłem to