如何通过编程方式触发Jquery UI的change事件?

3

我正在使用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”事件未触发。请帮助我。


因为这就是如何提问。请查看此处以获取更多信息。 - empiric
1
我想干掉那个忘记为这个插件实现触发器的人... - user3383675
1个回答

2

这是一种解决方法。

您可以绑定selectmenuchange事件,然后使用.trigger()函数。

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

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

DEMO


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接