我刚开始使用jRails和jRails auto_complete helper
http://github.com/evilmarty/jrails_auto_complete
我在使用原型之前使用了默认的auto_complete助手,并且除了将鼠标悬停在自动完成的结果上之外,使用jRails工作正常。如果您使用简单文本作为结果,它的工作方式与广告一样。但我一直在我的部分使用几个div,它生成自动完成的输出。
<li class="location"><div class="image"><img src="/images/flags/<%=h image %>.png"/></div><div class="name"><%=h location.keyword %>,</div><div class="country"> <%=h location.sideinfo %></div></li>
它看起来一样,并且所有CSS都工作并且看起来和以前一样,但选择或悬停在结果上是混乱的。如果您将鼠标悬停在文本周围的背景上,它只允许选择...标记中的任何内容(div,span等)都会导致悬停消失,单击它不会将文本添加到文本框中。
还有其他人有过类似的问题吗?
答案 0 :(得分:1)
我知道有点晚了,但我今天也遇到了同样的问题。
这一切归结为mouseover事件冒泡从子对象显然缺少autocompleteIndex属性(它仅在LI元素上分配。因此,一旦指针超过其中一个子节点,突出显示就消失了。
我最终改变了这样的jrails_autocomplete.js:
onHover: function(e) {
var my_index = e.target.autocompleteIndex;
if (!my_index) {
my_index = $(e.target).closest('li').attr('autocompleteIndex');
}
if (this.index != my_index) {
this.index = my_index;
this.render();
}
stopEvent(e);
},
现在,如果我们在触发mouseover事件的元素中找不到autocompleteIndex属性,我们会查看最近的类型'li'的父级,并使用那里存在的任何内容。
有点hackish,但至少对我有用。
在旁注中,我也不得不痒痒onClick,或者当我点击鼠标并点击一个,比方说,DIV元素时,索引丢失了。实际上我想知道为什么这首先出现在那里,键盘界面也不包括类似的东西。
onClick: function(e) {
/*this.index = e.target.autocompleteIndex;*/
this.selectEntry();
this.hide();
},