我正在使用selecter jquery。我通过输入代码
来初始化它$("select").selecter();
我需要确保在开始添加元素之前已经完成了formstone selecter jquery库。所以我所做的就是使用$.when
函数
initialize: function(){
$.when($("select").selecter()).then(this.initOptions());
},
initOptions: function(){
this.$el.find('.selecter').addClass('something');
}
但这不起作用。在执行另一个函数之前,我怎么能等到formstone选择器正在做它的事情?
谢谢,
更新
以下是我所做的更新,但它不起作用。
initialize: function(){
$("select").selecter({callback: this.initOptions });
},
initOptions: function(){
this.$el.find('.selecter').addClass('something');
}
答案 0 :(得分:0)
有一个回调选项。
作为回调传递的函数将接收新选择的值作为第一个参数
应为$("select").selecter(callback: function() { alert('callback fired.') });
或如图所示
$("select").selecter({
callback: selectCallback
});
function selectCallback(value, index) {
alert("VALUE: " + value + ", INDEX: " + index);
}
答案 1 :(得分:0)
我认为关于回调编辑代码的问题是这可以引用任何东西。请尝试以下代码
var selectorObj = {
initialize: function(){
$("select").selecter({callback: selectorObj.initOptions });
},
initOptions: function(){
this.$el.find('.selecter').addClass('something');
}
};
创建了一个工作小提琴手
css变形了。只需选择单击下拉列表时弹出的内容即可。您将收到一个写在回调中的警报。
答案 2 :(得分:0)
提供的代码段的问题是回调的范围:
var selectorObj = {
initialize: function(){
$("select").selecter({ callback: selectorObj.initOptions });
},
initOptions: function(){
// 'this' refers to the "$('.selecter')" jQuery element
this.addClass('something');
}
};
但是,如果您只需要为渲染元素添加一个类,则应使用' customClass'选项:
$("select").selecter({
customClass: "something"
});
如果您需要做更多,您可以直接访问Selecter元素:
var $selecter = $("select").selecter().next(".selecter");
$selecter.addClass("something").find(".selecter-selected").trigger("click");
旁注:我是Formstone的主要开发者。如果您对新功能或更好的实现有任何建议,只需在GitHub上打开一个新问题。