我刚创建了一个selectbox
插件。这很简单,我正在尝试修改它。
实际上它正在做的是隐藏选择并在ul,li
之后添加一些select
。
说我有这些选项
<select id="test">
<option>1</option>
<option>2</option>
</select>
现在我可以做到
$("#test").selectBox(); //to make it my selectBox
我有setter和getter选项
$("#test").selectBox("changeValue",["changed option",index]);
在我的插件上,我正在使用方法..
var methods = {
init :function(options){},
changeValue:function(value){
//some code to change the value ...
}
};
我可以更改值,但如何捕获change
事件?
change
表示选择更改或ul,li
我真正需要的是
$("#test").selectBox(); //initialise
$("#test").change(function(){ //attach change event
//my codes.....
});
或
$("#test").selectBox({
onChange : function(){
console.log("changed....");
}
});
希望现在的问题很清楚。 谢谢。
编辑:这是FIDDLE链接http://jsfiddle.net/jitheshkt/rBjqq/3/ 请注意,我不是这方面的专家,只是想成功。
* 编辑:我在每个函数中编写了事件,所以我认为这将是问题所在。我改变它并且运作良好*
答案 0 :(得分:2)
试试这个......
$("#test").on('change',function(){
// Write your code here.
});
对于旧版本的jQuery使用此
$("#test").change(function() {
console.log('HI');
});
这应该按原样运作。
答案 1 :(得分:2)
我认为您使用val()方法设置了值。如果您使用jQuery API / JavaScript更改值,则不会触发更改事件,因此您必须手动触发它,如下所示:
$('#test').change()
或
$('#test').trigger('change');
我希望能做到这一点!
答案 2 :(得分:1)
您可以依赖原始选择框更改而不是自定义选择框。
当你选择一个li项时,你会更新原始选择框中的相应值,以便更改get被触发..