1

我刚刚创建了一个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/ 请注意,我不是这方面的专家,只是试图做到这一点。

*编辑:我在每个函数中编写了事件,所以我认为这将是问题所在。我改变了它并且运行良好*

4

3 回答 3

2

我想您正在使用val()方法设置值。如果您使用 jQuery API/JavaScript 更改值,则不会触发 change 事件,因此您必须手动触发它,如下所示:

$('#test').change()

或者

$('#test').trigger('change');

我希望这能解决问题!

于 2012-07-24T09:34:49.863 回答
2

尝试这个...

$("#test").on('change',function(){ 
    // Write  your code here.
});

对于旧版本的 jQuery 使用这个

$("#test").change(function() {
    console.log('HI');
});

这应该按原样工作。

于 2012-07-24T08:53:05.027 回答
1

您可以依赖于原始选择框的更改,而不是您自定义的选择框。

当您选择一个 li 项目时,您会更新原始选择框中的相应值,以便触发更改获取..

于 2012-07-24T08:48:13.113 回答