У меня есть span и выберите на мой взгляд
Вот его код
<li>
<select name="search[adults]" id="search_adults" class="custom" style="display: none;">
<option selected="selected" value="1">1 vuxen</option>
<option value="2">2 vuxna</option>
<option value="3">3 vuxna</option>
<option value="4">4 vuxna</option>
<option value="5">5 vuxna</option>
<option value="6">6 vuxna</option>
<option value="7">7 vuxna</option>
<option value="8">8 vuxna</option>
<option value="9">9 vuxna</option>
</select>
<span tabindex="0" id="search_adults-button" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="search_adults-menu" aria-haspopup="true" class="ui-selectmenu-button ui-button ui-widget ui-selectmenu-button-open ui-corner-top" aria-activedescendant="ui-id-3" aria-labelledby="ui-id-3" aria-disabled="false">
<span class="ui-selectmenu-icon ui-icon ui-icon-triangle-1-s"></span><span class="ui-selectmenu-text">1 vuxen</span>
</span>
</li>
Мне нужно открыть selectmenu для события mousedown
и получить значение элемента на mouseup
когда я перемещаю свою мышь в select.
Для mousedown я написал код, и он прекрасно работает
$("#search_adults-button").on("mousedown", function() {
$("#search_adults").selectmenu("open");
});
$('#search_adults-button').on("click", function() {
$("#search_adults").selectmenu("open");
});
Но я не могу понять, как обрабатывать mouseup
ЗдесьЭто экран выбора с span.
Например, я нажимаю span, удерживая мышь, а затем перемещаю его в 2 vuxna и отпускаю его.И я хотел бы получить 2 vuxna.
Я пытался сделать это так
$("#search_adults-button").on("mouseup", function() {
var conceptName = $('#search_adults').find(":selected").text();
alert(conceptName);
});
Но это не работает.Потому что mouseup
событие работает только тогда, когда мышь в span и получает 1 vuxna.
Вот фрагмент кода, чтобы показать проблему
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Selectmenu - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
fieldset {
border: 0;
}
label {
display: block;
margin: 30px 0 0 0;
}
.overflow {
height: 200px;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#speed" ).selectmenu();
$("#speed-button").on("mousedown", function() {
$("#speed").selectmenu("open");
});
$('#speed-button').on("click", function() {
$("#speed").selectmenu("open");
});
$("#speed-button").on("mouseup", function() {
var conceptName = $('#speed').find(":selected").text();
alert(conceptName);
});
} );
</script>
</head>
<body>
<div class="demo">
<form action="#">
<fieldset>
<select name="speed" id="speed">
<option selected="selected" value="1">1 vuxen</option>
<option value="2">2 vuxna</option>
<option value="3">3 vuxna</option>
<option value="4">4 vuxna</option>
<option value="5">5 vuxna</option>
<option value="6">6 vuxna</option>
<option value="7">7 vuxna</option>
<option value="8">8 vuxna</option>
<option value="9">9 vuxna</option>
</select>
</fieldset>
</form>
</div>
</body>
</html>
Как мне справиться с проблемой?