Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca
marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double
clique sur un mot dans une phrase, le mot est sélectionné... et donc
apparait en surbrillance, avant que l'action onDblClick ne se lance !
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en
permettant des sélection manuelles ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Saad Saad
Bonjour,
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en permettant des sélection manuelles ?
<body onselectstart="return false;">
ne fonctionne que sur IE
Bonjour,
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca
marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double
clique sur un mot dans une phrase, le mot est sélectionné... et donc
apparait en surbrillance, avant que l'action onDblClick ne se lance !
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en
permettant des sélection manuelles ?
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en permettant des sélection manuelles ?
<body onselectstart="return false;">
ne fonctionne que sur IE
Laurent Vilday
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
C'est sur le premier mousedown que l'event de sélection commence pour FX1.5 et opera9, sur selectstart pour IE6.
Cependant chaque navigateur dispatch les events selon sa sauce, et encore, j'ai pas Safari ou Konqueror sous la main pour tester.
Ainsi, l'ordre des events lors d'une sélection au simple et double click sont les suivants (avec *e* la variable representant l'event dans la function) :
* IE 6 (pas d'infos pour aucun des events) - simple click mousedown selectstart mouseup - par double click mousedown mouseup selectstart mouseup dblclick
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en permettant des sélection manuelles ?
Eheh, le beurre et l'argent, le tout avec un mars, merci :p
C'est facilement réalisable avec FX1.5, un peu moins avec IE6, par contre j'arrive pas à conserver la sélection sur simple click avec Opéra9, mais je m'y attendais vu l'ordre des events.
* FX1.5 :
Comme je disais au début, l'event de sélection commence sur le mousedown. Lorsqu'il s'agit d'un simple click, la propriété détail (event.detail) == 1, quand il s'agit d'un double click, cette même propriété est à 2. Donc
element.onmousedown = function(e) { if ( e.detail == 2) { // double click c'est PAS ok pour la sélection return false; } return true; // plus simplement : // return e && e.detail === 1; };
* Opéra 9
Déjà, il y a un problème supplémentaire : Opéra 9 ouvre un menu contextuel sur le double-click. Cependant, j'était content quand j'ai découvert que la propriété detail de l'event existait aussi pour lui. Malheureusement, comme vu dans l'ordre des events, cette propriété est à 2 uniquement lors du dblclick, hors c'est déjà trop tard pour annuler la sélection qui a commencé sur le mousedown. Je ne vois pas de solution pour avoir un dblclick sans sélection tout en conservant la sélection au simple click. Tout ce que j'ai pu trouver, c'est d'annuler purement et simplement toute sélection :(
Pour lui, la selection se gère sur le onselectstart mais pareil que pour Opera 9, j'ai rien trouvé permettant de détecter si c'est une sélection sur simple click ( drag ) ou sur double click dans l'objet window.event. Par contre, puisque l'ordre des events est différents selon qu'il s'agisse d'un simple ou double click, on peut tricher avec une variable indiquant l'état.
sur le mousedown, on place la variable *is_started* à true sur le mouseup, on place la variable *is_started* à false ainsi, sur le selectstart, si *is_started* est true, c'est qu'on est dans le cas d'un simple click, donc l'event doit correctement continuer. Et dans le cas contraire, et bien il faut annuler. (cf ordre des events au début du post)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le modèle traditionnel et ne soucie *pas* de vérifier si ca écrase l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le besoin, j'aurais prévenu), ça donne ceci :
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca
marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double
clique sur un mot dans une phrase, le mot est sélectionné... et donc
apparait en surbrillance, avant que l'action onDblClick ne se lance !
C'est sur le premier mousedown que l'event de sélection commence pour
FX1.5 et opera9, sur selectstart pour IE6.
Cependant chaque navigateur dispatch les events selon sa sauce, et
encore, j'ai pas Safari ou Konqueror sous la main pour tester.
Ainsi, l'ordre des events lors d'une sélection au simple et double click
sont les suivants (avec *e* la variable representant l'event dans la
function) :
* IE 6 (pas d'infos pour aucun des events)
- simple click
mousedown
selectstart
mouseup
- par double click
mousedown
mouseup
selectstart
mouseup
dblclick
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en
permettant des sélection manuelles ?
Eheh, le beurre et l'argent, le tout avec un mars, merci :p
C'est facilement réalisable avec FX1.5, un peu moins avec IE6, par
contre j'arrive pas à conserver la sélection sur simple click avec
Opéra9, mais je m'y attendais vu l'ordre des events.
* FX1.5 :
Comme je disais au début, l'event de sélection commence sur le
mousedown. Lorsqu'il s'agit d'un simple click, la propriété détail
(event.detail) == 1, quand il s'agit d'un double click, cette même
propriété est à 2. Donc
element.onmousedown = function(e)
{
if ( e.detail == 2)
{
// double click c'est PAS ok pour la sélection
return false;
}
return true;
// plus simplement :
// return e && e.detail === 1;
};
* Opéra 9
Déjà, il y a un problème supplémentaire : Opéra 9 ouvre un menu
contextuel sur le double-click. Cependant, j'était content quand j'ai
découvert que la propriété detail de l'event existait aussi pour lui.
Malheureusement, comme vu dans l'ordre des events, cette propriété est à
2 uniquement lors du dblclick, hors c'est déjà trop tard pour annuler la
sélection qui a commencé sur le mousedown.
Je ne vois pas de solution pour avoir un dblclick sans sélection tout en
conservant la sélection au simple click. Tout ce que j'ai pu trouver,
c'est d'annuler purement et simplement toute sélection :(
Pour lui, la selection se gère sur le onselectstart mais pareil que pour
Opera 9, j'ai rien trouvé permettant de détecter si c'est une sélection
sur simple click ( drag ) ou sur double click dans l'objet window.event.
Par contre, puisque l'ordre des events est différents selon qu'il
s'agisse d'un simple ou double click, on peut tricher avec une variable
indiquant l'état.
sur le mousedown, on place la variable *is_started* à true
sur le mouseup, on place la variable *is_started* à false
ainsi, sur le selectstart, si *is_started* est true, c'est qu'on est
dans le cas d'un simple click, donc l'event doit correctement continuer.
Et dans le cas contraire, et bien il faut annuler. (cf ordre des events
au début du post)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le
modèle traditionnel et ne soucie *pas* de vérifier si ca écrase
l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le
besoin, j'aurais prévenu), ça donne ceci :
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
C'est sur le premier mousedown que l'event de sélection commence pour FX1.5 et opera9, sur selectstart pour IE6.
Cependant chaque navigateur dispatch les events selon sa sauce, et encore, j'ai pas Safari ou Konqueror sous la main pour tester.
Ainsi, l'ordre des events lors d'une sélection au simple et double click sont les suivants (avec *e* la variable representant l'event dans la function) :
* IE 6 (pas d'infos pour aucun des events) - simple click mousedown selectstart mouseup - par double click mousedown mouseup selectstart mouseup dblclick
Y-a-t-il un moyen d'éviter cette mise en surbrillance, tout en permettant des sélection manuelles ?
Eheh, le beurre et l'argent, le tout avec un mars, merci :p
C'est facilement réalisable avec FX1.5, un peu moins avec IE6, par contre j'arrive pas à conserver la sélection sur simple click avec Opéra9, mais je m'y attendais vu l'ordre des events.
* FX1.5 :
Comme je disais au début, l'event de sélection commence sur le mousedown. Lorsqu'il s'agit d'un simple click, la propriété détail (event.detail) == 1, quand il s'agit d'un double click, cette même propriété est à 2. Donc
element.onmousedown = function(e) { if ( e.detail == 2) { // double click c'est PAS ok pour la sélection return false; } return true; // plus simplement : // return e && e.detail === 1; };
* Opéra 9
Déjà, il y a un problème supplémentaire : Opéra 9 ouvre un menu contextuel sur le double-click. Cependant, j'était content quand j'ai découvert que la propriété detail de l'event existait aussi pour lui. Malheureusement, comme vu dans l'ordre des events, cette propriété est à 2 uniquement lors du dblclick, hors c'est déjà trop tard pour annuler la sélection qui a commencé sur le mousedown. Je ne vois pas de solution pour avoir un dblclick sans sélection tout en conservant la sélection au simple click. Tout ce que j'ai pu trouver, c'est d'annuler purement et simplement toute sélection :(
Pour lui, la selection se gère sur le onselectstart mais pareil que pour Opera 9, j'ai rien trouvé permettant de détecter si c'est une sélection sur simple click ( drag ) ou sur double click dans l'objet window.event. Par contre, puisque l'ordre des events est différents selon qu'il s'agisse d'un simple ou double click, on peut tricher avec une variable indiquant l'état.
sur le mousedown, on place la variable *is_started* à true sur le mouseup, on place la variable *is_started* à false ainsi, sur le selectstart, si *is_started* est true, c'est qu'on est dans le cas d'un simple click, donc l'event doit correctement continuer. Et dans le cas contraire, et bien il faut annuler. (cf ordre des events au début du post)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le modèle traditionnel et ne soucie *pas* de vérifier si ca écrase l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le besoin, j'aurais prévenu), ça donne ceci :
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
C'est sur le premier mousedown que l'event de sélection commence pour FX1.5 et opera9, sur selectstart pour IE6. (...)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le modèle traditionnel et ne soucie *pas* de vérifier si ca écrase l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le besoin, j'aurais prévenu), ça donne ceci : (...)
J'arrive largement après la guerre, mes excuses En tout cas je vois cette réponse très complète, merci milles fois ! Je vais voir à partir de ces conseils et informations
Laurent Vilday wrote:
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca
marche bien, mais j'ai un petit soucis esthétique : lorsque l'on
double clique sur un mot dans une phrase, le mot est sélectionné... et
donc apparait en surbrillance, avant que l'action onDblClick ne se
lance !
C'est sur le premier mousedown que l'event de sélection commence pour
FX1.5 et opera9, sur selectstart pour IE6.
(...)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le
modèle traditionnel et ne soucie *pas* de vérifier si ca écrase
l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le
besoin, j'aurais prévenu), ça donne ceci :
(...)
J'arrive largement après la guerre, mes excuses
En tout cas je vois cette réponse très complète, merci milles fois ! Je
vais voir à partir de ces conseils et informations
Je viens d'ajouter un événement onDblClick sur un Tr d'un tableau. Ca marche bien, mais j'ai un petit soucis esthétique : lorsque l'on double clique sur un mot dans une phrase, le mot est sélectionné... et donc apparait en surbrillance, avant que l'action onDblClick ne se lance !
C'est sur le premier mousedown que l'event de sélection commence pour FX1.5 et opera9, sur selectstart pour IE6. (...)
Donc le tout, en version bete et méchante, pas optimisée, qui utilise le modèle traditionnel et ne soucie *pas* de vérifier si ca écrase l'existant (donc à ne PAS utiliser tel quel mais s'en inspirer selon le besoin, j'aurais prévenu), ça donne ceci : (...)
J'arrive largement après la guerre, mes excuses En tout cas je vois cette réponse très complète, merci milles fois ! Je vais voir à partir de ces conseils et informations