以编程方式进行Jquery UI火灾更改事件?

时间:2015-05-08 07:32:40

标签: 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");

});

点击select option 2按钮,下拉列表中的值会发生变化,但不会触发change事件。请帮帮我。

1 个答案:

答案 0 :(得分:2)

这是一个解决方法。

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

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

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

DEMO