0

Je viens de commencer à l'aide jRails et les jRails helper auto_completejrails des problèmes de sélection autocomplete avec DIVs ou quoi que ce soit d'autre

http://github.com/evilmarty/jrails_auto_complete

j'utilisais l'aide par défaut auto_complete avant d'utiliser le prototype et la baisse a bien fonctionné avec jRails sauf pour planer sur les résultats de la saisie semi-automatique. Si vous utilisez un texte simple pour le résultat, cela fonctionne comme annoncé. Mais j'ai utilisé plusieurs divs dans mon partiel qui génère la sortie pour la saisie semi-automatique.

<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> 

Il semble même et tous les travaux CSS et regarde les mêmes qu'avant, mais la sélection ou planant au-dessus des résultats est foiré. Il ne permet la sélection que si vous passez la souris sur l'arrière-plan du texte ... tout élément d'une balise (div, span, etc.) entraîne le déplacement du pointeur et le fait de cliquer dessus n'ajoute pas le texte à la zone de texte.

Est-ce que quelqu'un d'autre a eu des problèmes similaires?

Répondre

1

Un peu tard je sais, mais j'ai rencontré le même problème moi-même aujourd'hui.

Tout cela se résume à l'événement mouseover bouillonne d'objets enfants qui, évidemment, ne disposent pas de la propriété autocompleteIndex (il est affecté uniquement sur des éléments LI. D'où une fois que le pointeur se trouve sur l'un des enfants, le point culminant est parti.

J'ai fini par modifier jrails_autocomplete.js comme ceci:


    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); 
    }, 

maintenant, si nous ne parvenons pas à trouver une propriété autocompleteIndex dans l'élément qui a déclenché l'événement mouseover, nous regardons le parent le plus proche du type « li » et à utiliser tout ce qui existe

Un peu hackish, mais au moins travaillé pour moi.

Sur un sidenote, j'ai également dû chatouiller onClick, ou quand j'ai cliqué sur la souris et frappé un élément, disons, DIV, l'index a été perdu. En fait, je me demande pourquoi cela était là en premier lieu, l'interface du clavier ne comprend pas quelque chose de similaire non plus.


     onClick: function(e) { 
      /*this.index = e.target.autocompleteIndex;*/ 
      this.selectEntry(); 
      this.hide(); 
     }, 
Questions connexes