如何从javascript打开JQuery选择菜单插件

How to open JQuery selectmenu plugin from javascript?

本文关键字:选择 菜单 插件 JQuery 打开 javascript      更新时间:2023-09-26

选择菜单的open方法不起作用。

$( "#speed" ).selectmenu('open'); // doesn't work

想法?

小提琴

.HTML

<button id="btn">open it</button>
<fieldset>
    <label for="speed">Select a speed</label>
    <select name="speed" id="speed">
        <option value="Slower">Slower</option>
        <option value="Slow">Slow</option>
        <option value="Medium" selected="selected">Medium</option>
        <option value="Fast">Fast</option>
        <option value="Faster">Faster</option>
    </select>
</fieldset>

.JS

$(function () {
    $( "#speed" ).selectmenu();
    $('#btn').click(function(){
        $( "#speed" ).selectmenu('open'); // doesn't work
    });
});

.CSS

fieldset {
    border: 0;
}
label {
    display: block;
    margin: 30px 0 0 0;
}
select {
    width: 200px;
}
.overflow {
    height: 200px;
}

我看了一下发生了什么。它打开正常,但在打开期间,它会注册一个文档单击处理程序,该处理程序会关闭菜单以响应菜单外的任何单击,并且该处理程序会立即处理对按钮的单击。您应该能够像这样停止处理程序处理此单击:

$(function () {
    $( "#speed" ).selectmenu();
    $('#btn').click(function(event){
        $( "#speed" ).selectmenu('open');
        event.stopPropagation();
    });
});