2017-10-18 181 views
1

我处于不得不在同一个项目中使用jQuery和YUI的位置。我使用的引导多选 - http://davidstutz.github.io/bootstrap-multiselect/YUI不会在使用引导多选时触发on.change

我想下面的代码YUI:

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

现在,这时候下拉菜单没有启用多选工作。一旦发现,getAjax未被解雇。

任何想法?我猜(从谷歌检查)实际菜单没有改变?

当我尝试使用jQuery来看看是否有改变,我可以得到它的工作,但在尝试运行getAjax()当错误

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

错误是

this.getAjax is not a function(…) 

的代码片断较大

​​

所以我可以看到,如果它通过jQuery变化,但我怎么会那么叫getAjax

+0

因为多选组件都有自己的变化情况,因此它不火你应该使用multiselect插件事件onChange http://davidstutz.github.io/bootstrap-multiselect/#configuration-options-onChange –

+0

我不能得到那个发射YUI功能,但是 - 这就是问题所在 – pee2pee

回答

1

可以在此从任何事件,因为那个时候“这一”被引用到您的项目无法访问,因此,您必须使用以下

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() { 
+0

所以显然很简单..... 谢谢 – pee2pee

相关问题