0

尝试创建一个按钮,该按钮将转到分配有 $selectmenu 的选择菜单中的下一个选项。

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');

适用于标准的 HTML 选择菜单,但在分配了 jquery $selectmenu 时无效。

$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});

知道如何控制选择菜单吗?

任何帮助表示赞赏...

担。

4

4 回答 4

3

您应该使用插件value方法。

$("select#toolMenu").selectmenu("value", theIndex);

哪里theIndex是期权的从零开始的索引

请注意,如果您在运行时修改<option>选择中的列表,您必须完全销毁并从头开始创建插件。例如,以下函数执行 ajax 调用以更新选择元素的选项列表

$.ajax({
    type: "post",
    dataType: "json",
    url: 'your_url',
    async: false,
    data: {},
    beforeSend: function() {
        $("#mySelect").selectmenu('disable'); 
    },
    success: function (response) {
        $('#mySelect').html('');
        $.each(response, function (i, data) {
            $('#mySelect').append($("<option></option>").attr("value", data.Value).text(data.Text));
        });
        $('#mySelect').selectmenu('destroy').selectmenu();
    }
});
于 2010-11-16T11:57:10.023 回答
0

更改所选选项后,您将不得不再次调用插件功能。

该插件将根据下拉菜单添加一些样式化的 HTML 元素。一旦呈现,就很难使用您自己的代码手动更改它。您可能必须在修改后的下拉菜单中再次调用该函数。

于 2010-11-16T11:55:10.317 回答
0

由于菜单旨在为每个选项加载一个新页面,因此我只是抓住了原始选项 val() 并转到下一页菜单将自动使用 dom 重新启动。

        jqueryMenu()

        $('a.previous').click(function(){

            val = $('option:selected', 'select').previous('option').val();
            window.location=val;

        })

        $('a.next').click(function(){

            val = $('option:selected', 'select').next('option').val();
            window.location=val;

        })
于 2010-11-16T12:04:22.957 回答
0

@Lorenzo 部分正确。您可以使用 value 或 index 方法来更改当前的活动选项。

更改选择(添加、修改、删除选项)时,您无需销毁重新初始化选择菜单,而是在已初始化的元素上再次使用 myElement.selectmenu()。

请参阅 wiki 了解更多信息:https ://github.com/fnagel/jquery-ui/wiki/Selectmenu

于 2012-09-04T10:44:04.483 回答