我有确切的问题,昨天,但做了一些[R & d后,我得到了一个非常方便的修正这一点。
默认情况下,此脚本隐藏了搜索文本框上模糊事件的结果div(Suggestion List),因此只要我们单击结果div的滚动条焦点从输入元素&结果div就会关闭。所以我在controls.js中做了一个小的编辑来改变脚本的行为,所以现在结果div close方法不会调用input元素的blur(focus out),而是触发除了文本输入元素之外的文档的点击。
为了您的方便,我已将编辑后的controls.js here。
如果您想知道JS文件中发生了什么变化,请点击此处;
向文档添加了事件侦听器。就在这条线下面
“Event.observe(this.update,”keypress“,this.onKeyPress.bindAsEventListener(this));”
Event.observe($(document), "mouseup", this.onMouseup.bindAsEventListener(this));
增加了一个新的onMouseup方法。
onMouseup: function(event) {
if(!this.hasFocus) {
this.hideTimeout = setTimeout(this.hide.bind(this), 250);
this.hasFocus = false;
this.active = false;
}
},
修改的onblur方法(注释掉块双线)
onBlur: function(event) {
//this.hideTimeout = setTimeout(this.hide.bind(this), 250);
//this.active = false;
this.hasFocus = false;
}
我希望这将解决您的问题。
感谢
Vinod Kumar
感谢@Vinod库马尔。但它仍然可以防止在鼠标在其外部点击时使用建议关闭div。但是,谢谢! – Cheluis
我也使用过这个解决方案,感谢@Vinod Kumar,在Chrome和IE上测试过。它确实为我关闭了div。 – MartinC
hm,但问题是clickEvent停止工作。我正在使用自动完成的值作为服务调用的输入参数。如果我在OnBlur()中注释掉两行,它会停止工作,所以更糟糕。如何解决这个问题? – MartinC