使用 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() {
我现在不得不在同一个项目中使用 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() {