J'aime en ajouter une qui fonctionne également avec la création dynamique du DOM en javascript comme D3 où il est impossible d'ajouter:
//.attr(function(){if(condition){"readonly"]else{""}) //CODE INCORRECT !
pour éviter les actions sur un élément DOM input HTML ajouter readonly à la classe:
var d = document.getElementById("div1");
d.className += " readonly";
Ou en D3:
.classed("readonly", function(){
if(condition){return true}else{return false}
})
ET ajouter au CSS ou less:
.readonly {
pointer-events: none;
}
La bonne chose à propos de cette solution est que vous pouvez l'activer et la désactiver dynamiquement dans une fonction afin qu'elle puisse être intégrée par exemple dans D3 au moment de la création (pas possible avec le seul attribut "readonly").
pour supprimer l'élément de la classe:
document.getElementById("MyID").className =
document.getElementById("MyID").className.replace(/\breadonly\b/,'');
ou utilisez Jquery:
$( "div" ).removeClass( "readonly" )
ou basculez la classe:
$( "div" ).toggleClass( "readonly", addOrRemove );
Juste pour être complet, bonne chance =^)
1 votes
Est-ce que
keydown()
oukeypress()
est plus efficace?