Jquery UI 以编程方式触发更改事件?

标签 jquery html jquery-ui

我正在使用 jquery UI 并在 jsfiddle 下面创建.

$( "#filesA" ).selectmenu({ change: function( event, ui ) { alert('x'); }});

$.widget( "custom.iconselectmenu", $.ui.selectmenu, {
    change: function(event,ui){
        alert("Changed");
    },
    _renderItem: function( ul, item ) {
        var li = $( "<li>", { text: item.label } );

        if ( item.disabled ) {
            li.addClass( "ui-state-disabled" );
        }

        $( "<span>", {
            style: item.element.attr( "data-style" ),
            "class": "ui-icon " + item.element.attr( "data-class" )
        })
        .appendTo( li );

        return li.appendTo( ul );
    },
});

$( "#filesA" ).addClass( "ui-menu-icons" );

// set option by value - select "option 2"
$('#btn').click(function (){
    $('#filesA').val('2');
    $('#filesA').selectmenu("refresh");
        $('#filesA').selectmenu("change");

});

单击选择选项 2 按钮时,下拉列表中的值会发生变化,但不会触发 change 事件。请帮助我。

最佳答案

这是一个解决方法。

你可以绑定(bind)selectmenuchange事件然后你可以使用.trigger()

$("#filesA")
    .selectmenu()
    .on("selectmenuchange", function (event, ui) {
        alert('x');
    });

$('#filesA').val('2')
    .selectmenu("refresh")
    .trigger("selectmenuchange");

DEMO

关于Jquery UI 以编程方式触发更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30118283/

相关文章:

jquery - 使用 jQuery,如何从远程 HTML 文件中获取特定文本?

html - Chrome 中的定位问题(其他浏览器工作正常)

javascript - 保存变量的选定数据以在另一页中使用

javascript - 自动完成组合框

javascript - 触发点击以id结尾的按钮以数字结尾

jquery - 删除元素和元素之前的内容

jquery - jQuery 中的 parent 选择器

jquery - 如何捕获 JQuery 中的 JSON 解析错误?

javascript - 检查点后 2 个字母的输入验证模式

javascript - JQuery 切换按钮触发器