Just for the info, this is Google Chrome specific since your code works fine in IE and FF.
If you really need this to work you could render a fake dropdown and than set select programmaticly.
You can change the size of dropdown to appear as it was open, something like this:
https://jsfiddle.net/yzr2cmqv/
<div clas="select-wrap">
<div class="fake-select"></div>
<select class="select">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
</div>
$(".fake-select").on("click", function () {
var numOfOpen = $("select.select option").size();
$(".select").attr("size", numOfOpen).css("overflow", "hidden");
$(this).hide();
});
$(".select").on("click", function () {
$(".select").attr("size", 1);
$(".fake-select").show();
});
Other than that I don't think you can do anything since Chrome events are not firing when dropdown is open.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…