J'utilise jquery ui - sélectionnable . Je veux désélectionner l'élément s'il a été pressé et il a déjà été sélectionné (basculer) p>
Pourriez-vous m'aider à ajouter cette fonctionnalité s'il vous plaît! p>
3 Réponses :
Vous avez déjà cette fonctionnalité avec jQuery UI sélectionnable si vous maintenez la touche CTRL en cliquant sur. P>
Si vous avez vraiment besoin de cela comme la fonctionnalité par défaut, vous n'avez pas besoin d'utiliser SIPLETILLABLE, vous pouvez le faire comme un simple gestionnaire onclick, comme ce que suggéra Nolabel. P>
ou ... vous pouvez aussi bien éditer Comme les Selectables pourraient utiliser une personnalisation supplémentaire, vous pouvez également faire une demande de fonctionnalité pour les développeurs de l'interface utilisateur JQuery pour l'inclure dans la prochaine version officielle. P>
Bien que j'accepte que vous avez la fonction sur PC et les périphériques ayant une clé CTRL, vous n'avez pas cette fonction lors de l'utilisation de périphériques tactiles - c'est donc une très bonne idée et ce n'est pas une double hausse mais plutôt une addition ou une extension.
À cause de tous les rappels de classe, vous n'allez pas faire beaucoup mieux que ceci:
$(function () { $("#selectable").selectable({ selected: function (event, ui) { if ($(ui.selected).hasClass('click-selected')) { $(ui.selected).removeClass('ui-selected click-selected'); } else { $(ui.selected).addClass('click-selected'); } }, unselected: function (event, ui) { $(ui.unselected).removeClass('click-selected'); } }); });
C'est une réponse très utile. Je ne sais pas pourquoi il n'a pas été marqué comme la réponse? Certainement travaillé pour moi.
Est-ce que cela va voler les événements comme vous l'attendez? Je suppose que Removeclass ne va pas déclencher l'événement non sélectionné.
Cela fonctionne pour basculer un seul élément. Cependant, il supprime déjà plusieurs éléments sélectionnés - ne fonctionne donc pas pour basculer plusieurs éléments.
Vous devez injecter deux éléments simples dans le code pour atteindre ce que vous voulez. Cela ne fait que Inverser le mékey Boolean, chaque fois que vous avez besoin de fonctionnalités inversées / basculantes.
options: { appendTo: 'body', autoRefresh: true, distance: 0, filter: '*', tolerance: 'touch', inverted: false /* <= FIRST*/ }, _mouseStart: function(event) { var self = this; this.opos = [event.pageX, event.pageY]; if (this.options.disabled) return; var options = this.options; if (options.inverted) /* <= SECOND*/ event.metaKey = !event.metaKey; /* <= SECOND*/
Est-ce que l'une de ces réponses vous a aidé?
Voici une méthode qui fonctionne bien - elle fait que la valeur par défaut soit comme si la touche CTL était enfoncée: Stackoverflow.com/a/12592042/1017650 < / a>