Change div par textarea et vice versa

Mammouth du PHP | 725 Messages

27 févr. 2013, 10:01

Bonjour,

Je voudrais au cllick changer une div par textarea, et quand je click hors de cet div ca doit annuler et retourner au normal:

[javascript]

$('div.cmd_details').click(function(){
var getClicked = $(this).attr('id');
console.log(getClicked);
$(this).replaceWith(function() {
return "<textarea>" + this.innerHTML + "</textarea>";
});
});

$('div.cmd_details').mouseout(function(){
var getClicked = $(this).attr('id');
console.log('test'+getClicked);

$(this).replaceWith(function() {
return "<div>" + this.innerHTML + "</div>";
[/javascript]

Merci a vous

Eléphant du PHP | 453 Messages

28 févr. 2013, 01:09

Salut,

L'attribut content editable ne te suffit pas ? A noter que cet attribut n'est pas nouveau. Même IE6 le reconnaît (pour une fois....)
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Mammouth du PHP | 725 Messages

28 févr. 2013, 02:05

c'est un bon exemple, et si on veut l'effectuer avec un evenement mouseout, comment faire?

Moi !
Invité n'ayant pas de compte PHPfrance

18 mai 2015, 00:52

J'ai trouvé un script génial pour vous aider regardez:

Dans le <head> de votre page, insérez ce script:

<script type="text/javascript">
var editable = document.getElementById('ecrire');
addEvent(ecrire, 'dblclick', function () {
// lame that we're hooking the blur event
localStorage.setItem('contenteditable', this.innerHTML);
document.designMode = 'off';
});
addEvent(ecrire, 'dblclick', function () {
document.designMode = 'on';
});
if (localStorage.getItem('contenteditable')) {
ecrire.innerHTML = localStorage.getItem('contenteditable');
}
</script>

Dans le <body> mettez le code suivant:

<div style="height:200px; border:1px solid;" id="ecrire" contenteditable="true">Cliquez et changez le texte</div>

Je ne suis pas adulte mais je peut vous assurer que ce code marche