在jquery选择菜单中选择下一个选项

在jquery选择菜单中选择下一个选项,jquery,select,option,next,Jquery,Select,Option,Next,正在尝试创建一个按钮,该按钮将转到已分配$selectmenu的selectmenu中的下一个选项 $('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected'); $('select#toolMenu').selectmenu({ style:'popup', width: 600, menuWidth: 600, maxHei

正在尝试创建一个按钮,该按钮将转到已分配$selectmenu的selectmenu中的下一个选项

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');
$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});
在标准HTML选择菜单上工作,但在为其分配jquery$selectmenu时不工作

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');
$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});
知道我如何控制selectmenu吗

感谢您的帮助


Dan。

更改所选选项后,您必须再次调用插件函数


该插件将根据下拉列表添加一些样式化的HTML元素。一旦渲染完成,就很难使用自己的代码手动更改它。您可能需要在下拉列表中再次调用该函数,该下拉列表为修改后的函数。

更改所选选项后,您必须再次调用插件函数

该插件将根据下拉列表添加一些样式化的HTML元素。一旦渲染完成,就很难使用自己的代码手动更改它。您可能需要在下拉列表中再次调用该函数,该下拉列表为修改后的下拉列表。

您应该使用plugin-value方法

其中,索引是选项的从零开始的索引

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

$.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();
    }
});
您应该使用plugin-value方法

其中,索引是选项的从零开始的索引

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

$.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();
    }
});

由于菜单的目的是为每个选项加载一个新页面,所以我只需抓取原始选项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;

        })

由于菜单的目的是为每个选项加载一个新页面,所以我只需抓取原始选项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;

        })

@洛伦佐部分是对的。您可以使用value或index方法更改当前活动选项

更改“选择”“添加”“修改”“删除”选项时,您不需要销毁reinit selectmenu,而是在已初始化的元素上再次使用myElement.selectmenu


更多信息请参见维基:

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

更改“选择”“添加”“修改”“删除”选项时,您不需要销毁reinit selectmenu,而是在已初始化的元素上再次使用myElement.selectmenu


有关详细信息,请参见wiki:

您应该发布一个插件链接,因为它不是jQuery核心的一部分。@Nick Craver:http://github.com/fnagel/jquery-uiYou 应该发布插件的链接,因为它不是jQuery核心的一部分。@Nick Craver:http://github.com/fnagel/jquery-uirecalling 创建了副本,但你的帖子让我找到了答案,谢谢!回忆创造了重复,但你的帖子让我找到了答案,所以谢谢!我也有类似的问题。要刷新selectmenu,您不必调用destroy。只需调用$'mySelect'。selectmenu当我调用destroy时,由于某种原因,它弄乱了下拉列表的宽度。我遇到了类似的问题。要刷新selectmenu,您不必调用destroy。只要调用$'mySelect'。selectmenu当我调用destroy时,由于某种原因,它弄乱了下拉列表的宽度