JQuery Basculer la propriété contentEditable = “true”

J’utilise contenteditable = “true” dans un div

Ce que je veux faire pour basculer entre vrai et faux sur cet atsortingbut chaque fois que je clique sur un div.

Exemple:

$( "#mylabel" ).click(function() { $('#editablediv').attr('contenteditable','false'); }); 

J’ai essayé:

 $( "#mylabel" ).toggle(function() { $('#editablediv').attr('contenteditable','false'); }); 

mais ça n’a pas marché

Comment puis-je faire ceci?

Essayez de cette façon:

 $( "#mylabel" ).click(function() { var value = $('#editablediv').attr('contenteditable'); if (value == 'false') { $('#editablediv').attr('contenteditable','true'); } else { $('#editablediv').attr('contenteditable','false'); } }); 

Tenez-moi au courant, j’espère que cela vous a aidé

Voici plus court que votre plus court (réutilisabilité et nombre de caractères):

 function editTheElement() { var a = "contenteditable"; $(this).attr(a) === 'true' ? $(this).attr(a,'false') : $(this).attr(a, 'true'); } 

ou encore

 function editTheElement(e) { var a = "contenteditable"; e.attr(a) === 'true' ? e.attr(a,'false') : e.attr(a, 'true'); } 

ou

 function editTheElement(e) { var a = 'contenteditable'; var v= e.attr(a); e.attr(a,!v); } 

ou

 function editTheElement(e) { var a = 'contenteditable'; e.attr(a,!e.attr(a)); } 

ou

 function editTheElement(e) { e.attr('contenteditable',!e.attr('contenteditable')); } 

JS est amusant 🙂

La solution la plus courte que j’ai trouvée:

 $('[contenteditable]').attr('contenteditable') === 'true' ? $('[contenteditable]').attr('contenteditable', 'false') : $('[contenteditable]').attr('contenteditable', 'true'); 
 $('#mylabel').click(function() { editable = $('#editablediv').attr('contenteditable'); $('#editablediv').attr('contenteditable', !(editable == 'true')); }); 

En 2018 au moins, la plupart de ces réponses ne fonctionnent pas après la première activation / désactivation de Chrome 68. C’est quelque chose qui explique comment jQuery ou le navigateur lit la valeur de cet atsortingbut, car la logique est assez simple.

Le code que j’ai trouvé pour travailler était

 var el = $("{your selector}") (el.attr('contenteditable') ? el.removeAttr('contenteditable') : el.attr('contenteditable', true)); 

Violon de démonstration