2010-07-19 3 views
1

J'utilise ce javascript pour éditer le texte en place: http://josephscott.org/code/javascript/jquery-edit-in-place maintenant je dois aussi éditer des liens. Mais quand je clique sur le lien au lieu de le rendre éditable, je suis redirigé vers l'adresse du lien. Comment puis-je le changer de sorte que si vous double-cliquez sur un lien, il est simplement modifiable et ne redirige pas n'importe où?Modifier les liens en place

Quelqu'un peut-il aider s'il vous plaît?

+0

Vous voulez dire que vous voulez suivre le lien sur 'click' et l'éditer sur' doubleclick'? Cela n'est pas possible car un double-clic génère toujours un événement click. –

+0

Oui, c'est possible! http://wordpress.org/extend/plugins/front-end-editor/ ce plugin le fait mais mon site ne fonctionne pas sur wordpress ... –

Répondre

3

utiliser l'événement dblclick et la méthode preventDefault

$('a_selector').eip("save.php", { 
    form_type: "textarea" 
}); 

$('a_selector').dblclick(function(e){ 
    e.preventDefault(); 
}) 

mise à jour Après avoir caressé autour avec le plugin un peu ..

Je crois qu'il permet nativement de définir l'événement qui commence l'édition ..

$('a').eip('save.php', { 
     form_type : 'textarea', 
     edit_event : 'dblclick' 
    }); 

mais je ne suis pas sûr qu'ils traitent correctement le cas où l'élément cible est un lien, car je ne vois pas dans leur code toute tentative d'arrêter le comportement par défaut ..

Peut-être pourriez-vous modifier le code source et ajouter vous-même ..

+0

Toujours ne peut pas empêcher d'entrer le lien par un double clic ... –

1

Vous devrez remplacer le comportement de lien par défaut, puis déclencher le code de modification sur place.

$("a").click(function(){ 
    //whatever you have to call to make it editable 
    return false; //prevent the link from being followed 
}); 
+0

Merci ça marche bien! Comment dois-je modifier le code pour entrer le lien comme avant si je ne clique dessus qu'une seule fois? –

+0

Je voudrais vérifier la réponse de Gaby à ce stade, il semble en savoir beaucoup plus sur le plugin en question. –

0

return false de votre gestionnaire d'événements, ou jQuery utiliser e.preventDefault() dans le gestionnaire, où e est l'objet événement.

Questions connexes