2009-10-12 8 views
18

Utilisation de la bibliothèque jQuery UI selectable(). Les liens au sein des éléments de la liste sélectionnable ne sont pas suivis en cliquant, seulement en cliquant avec le bouton droit et en ouvrant dans une nouvelle fenêtre ou un nouvel onglet.Interface utilisateur jQuery sélectionnable, liens non suivis au clic

HTML

<ul class="selectable-list"> 
    <li> 
     <p>Visit Google.</p> 
     <a href="http://www.google.com">Google</a> 
    </li> 
    <li> 
     <p>Visit Apple.</p> 
     <a href="http://www.apple.com">Apple</a> 
    </li> 
    <li> 
     <p>Visit Microsoft.</p> 
     <a href="http://www.microsoft.com">Microsoft</a> 
    </li> 
</ul> 

CSS

.selectable-list li.ui-selected, .selectable-list li.ui-selected:hover { 
    background-color: #ccc; 
} 

JS

$(document).ready(function(){ 

    $(".selectable-list").selectable(); 

}); 

Répondre

35

La méthode selectable() prend une option appelée cancel. Par défaut, il s'agit de ": input, option", mais vous pouvez l'utiliser pour rendre vos ancres non applicables à l'événement sélectionnable.

Pour votre code:

$(document).ready(function() { 
    $(".selectable-list").selectable({ 
     cancel: 'a' 
    }); 
}); 
+0

Est-il possible pour moi de reprendre le selectable après que j'arrive au lien désiré? – windsound

+0

Oh mec, vous venez de me sauver des heures de codage. Je vous remercie! – Slavic

+2

J'ai voté ceci. Mais alors compris l'option de retard est meilleure pour mon cas d'utilisation. http://api.jqueryui.com/selectable/#option-delay – Doug

1

sélectionnable est PRÉPONDÉRANTS vos événements de clic sur le href. Vous devrez probablement rajouter dans la fonctionnalité de navigation.

Cependant, cela semble être un comportement étrange pour lequel vous photographiez. Pourquoi voudrais-je jamais à la fois sélectionner quelque chose et suivre un lien (vraisemblablement vers une nouvelle fenêtre, qui se focaliserait alors) en même temps?

+0

Oui, je vois que sélectionnable est Redéfinition de la fonctionnalité de clic normal du lien. La question est alors quelles sont quelques suggestions sur la meilleure façon de le réparer? L'utilisateur sélectionnera des éléments dans une liste pour les enregistrer dans une liste personnalisée. L'interaction selectable() indique quels éléments ont été sélectionnés jusqu'à présent. Ils peuvent également choisir de suivre le lien dans l'élément de liste. – jerome

+0

Eh bien, l'avoir suivi automatiquement le lien n'est probablement pas ce que vous voulez du point de vue de l'interface utilisateur. Si c'est le cas, utilisez Jquery plus pour développer la fonctionnalité OnClick après avoir appelé .selectable(). Cependant, je recommanderais que le lien soit actif avec (select) après, ou vice versa, où le clic est un select, mais que vous ajoutez un lien (open url) sur la même ligne avec un sur clic pour ouvrir l'URL –

+0

J'apprécie vos recommandations sur le comportement de l'interface utilisateur. Le code réel sur lequel je travaille consiste en un élément de liste enveloppant un lien vers un article et une description plus longue d'une entrée d'article, suivie d'un horodatage pour cet article. Donc le contenu dans le li est plus grand, et c'est le li qui est sélectionnable, pas le lien lui-même. Peut-être que cette description vous aidera à imaginer ce que j'essaie de faire. Avez-vous une recommandation spécifique sur la façon de laisser le li dans son ensemble, tout en conservant (ou en rajoutant) la fonctionnalité de lien? – jerome

Questions connexes