我处于一个我必须在同一个项目中使用jQuery和YUI的位置。我正在使用Bootstrap multiselect - http://davidstutz.github.io/bootstrap-multiselect/
我正在尝试下面的YUI代码:
this.level1 = this.Y.one("#menu");
this.level1.on('change',this.getAjax,this);
现在,当下拉菜单未启用多项选择时,此功能正常。一旦完成,getAjax
就不会被解雇。
有什么想法吗?我猜测(来自Google Inspect)实际菜单没有被更改?
当我尝试使用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
?
答案 0 :(得分:1)
您无法从任何事件中访问此内容,因为时间“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() {