/ / Jquery otrzyma menu rozwijane z klikniętym tekstem bootstrap - jquery, backbone.js, drop-down-menu, twitter-bootstrap

Jquery otrzyma menu rozwijane z klikniętym tekstem bootstrap - jquery, backbone.js, drop-down-menu, twitter-bootstrap

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 № 1

Zależ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