我有一个选择,我想根据选择的内容运行各种功能。我还使用flexselect插件http://rmm5t.github.com/jquery-flexselect/将选择框转换为组合框。结果是一个输入框。
我希望在输入框文本更改时运行一个函数,不在模糊,但是立即运行。我认为没有办法做到这一点。我不能只做一个密钥,因为通常选择是从flexselect下拉列表中发生的,而不是键入的。使用change事件需要输入框模糊,这不是用户期望的行为。
这个问题有解决方法吗?
谢谢!
答案 0 :(得分:7)
请注意,jquery bind()允许多个事件。
$('#selector').bind('keyup mouseup change',function(e){
alert(e.type);
});
答案 1 :(得分:2)
这是一个黑客,但你可以修改flexselect.js文件,以便在更改文本框的值时引发自定义事件。在调用“this.input.val(”(如第231行)的文件中的任何位置后插入:trigger(“myCustomEvent”);然后从现有代码绑定到它:
$('#selector').bind('myCustomEvent',function(){
alert('myCustomEvent');
});
答案 2 :(得分:0)
为什么不使用onblur和onkeyup的组合?
当然你也可以创建一个计时器(window.setTimeout) - 不是很好或鼓励处理这个问题的方法,但它应该可以工作。