Comment pourrais-je faire en sorte que le contenu d'un élément puisse être rendu modifiable via JavaScript natif (DOM) et/ou jQuery?
Solution pour activer/désactiver la modification à l'aide d'un gestionnaire de clics:
$('button').click(function(){
var $div=$('div'), isEditable=$div.is('.editable');
$div.prop('contenteditable',!isEditable).toggleClass('editable')
})
Javascript:
document.getElementById('IdOfElement').contentEditable='true';
Regardez cet exemple que j'ai fait: http://jsfiddle.net/K6W7J/
JS:
$('button').click(function(){
$('div').attr('contenteditable','true');
})
HTML:
<button>CLICK</button>
<div>YOUR CONTENT</div>
Ou vous pouvez utiliser ce plugin que j'ai été sans problème à tout moment. il est vraiment simple et facile à utiliser.
Voici un exemple:
Html:
<div style="margin: 150px">
<a href="#" id="username">awesome</a>
</div>
[~ # ~] js [~ # ~]
$('#username').editable({
type: 'text',
url: '/post',
pk: 1,
title: 'Enter username',
ajaxOptions: {
type: 'put'
}
});
Si vous utilisez jQuery pour ajouter l'attribut à l'élément, vous devriez pouvoir basculer entre le mode d'édition et le mode HTML "normal". L'attribut contenteditable est pris en charge par tous les principaux navigateurs. Consultez http://blog.whatwg.org/the-road-to-html-5-contenteditable pour plus d'informations.