尝试创建一个按钮,该按钮将转到分配了$ selectmenu的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;
}
});
任何想法如何控制选择菜单?
任何帮助表示赞赏......
丹
答案 0 :(得分:3)
您应该使用插件value
方法。
$("select#toolMenu").selectmenu("value", theIndex);
其中theIndex
是选项的基于零的索引
请注意,如果您在运行时修改select中必须完全销毁的<option>
列表并从头开始创建插件。例如,以下函数执行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();
}
});
答案 1 :(得分:0)
更改所选选项后,您将不得不再次调用插件功能。
该插件将根据下拉列表添加一些样式化的HTML元素。渲染后,很难使用您自己的代码手动更改它。您可能需要在下拉列表中再次调用该函数,这是修改后的函数。
答案 2 :(得分: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;
})
答案 3 :(得分:0)
@Lorenzo部分正确。您可以使用值或索引方法更改当前活动选项。
更改选择(添加,修改,删除选项)时,您不需要销毁重新启动选择菜单,而是在已经初始化的元素中再次使用myElement.selectmenu()。
请参阅维基以获取更多信息:https://github.com/fnagel/jquery-ui/wiki/Selectmenu