使用 bootstrap 多选时 YUI 不会触发 on.change

YUI doesn't fire on.change when using bootstrap multiselect

我现在不得不在同一个项目中使用 jQuery 和 YUI。我正在使用 Bootstrap 多选 - http://davidstutz.github.io/bootstrap-multiselect/

我正在尝试以下 YUI 代码:

this.level1 = this.Y.one("#menu");
this.level1.on('change',this.getAjax,this);

现在,这在下拉菜单未启用多选时有效。一旦是,getAjax 不会被触发。

有什么想法吗?我猜(来自 Google 检查)实际菜单没有被更改?

当我尝试使用 jQuery 来查看是否发生了某些变化时,我可以让它工作但在尝试 运行 getAjax()

时出现错误
$('#menu').on('change', function(evt, params){
    this.getAjax();
}

错误是

this.getAjax is not a function(…)

更大的代码片段

constructor: function() {

    $('#menu').on('change', function(evt, params){
        this.getAjax();
    });

},

/**
 * Sample widget method.
 */
methodName: function() {

},

/**
 * Makes an AJAX request for `default_ajax_endpoint`.
 */
 getAjax: function() {

所以我可以通过 jQuery 查看它是否发生变化,但我将如何调用 getAjax

您无法从任何事件中访问此内容,因为那个时间 "this" 被引用到您的项目,因此您应该使用下面的内容

constructor: function() {
var $this = this;
$('#menu').on('change', function(evt, params){
    //this.getAjax();//this is your '#menu' item
    $this.getAjax();
});

    },

    /**
     * Sample widget method.
     */
    methodName: function() {

    },

    /**
     * Makes an AJAX request for `default_ajax_endpoint`.
     */
     getAjax: function() {