Comment désactiver l'élément DIV et tout à l'intérieur de

J'ai besoin de désactiver un DIV et tout son contenu en utilisant Javascript. Je peux jurer que faire un simple

<div disabled="true"> 

Je travaillais pour moi auparavant, mais pour une raison quelconque, il ne fonctionne plus. Je ne comprends pas pourquoi.

Dans IE10: le texte "Cliquez-moi" n'est pas grisé et le gestionnaire de clics fonctionne toujours.

J'ai vraiment besoin de ce travail pour IE10. Voici mon code. Merci d'avance.

 <html> <script> function disableTest(){ document.getElementById("test").disabled = true; var nodes = document.getElementById("test").getElementsByTagName('*'); for(var i = 0; i < nodes.length; i++){ nodes[i].disabled = true; } } </script> <body onload="disableTest();"> <div id="test"> <div onclick="alert('hello');"> Click Me </div> </div> </body> </html> 

Essaye ça!

 $("#test *").attr("disabled", "disabled").off('click'); 

Je ne vous vois pas en utilisant jquery ci-dessus, mais vous l'avez listé comme une étiquette.

La déclaration css suivante désactive les événements de clic

 pointer-events:none; 

Je pense que les scripts en ligne sont difficiles à arrêter au lieu de cela, vous pouvez essayer avec ceci:

 <div id="test"> <div>Click Me</div> </div> 

Et script:

 $(function () { $('#test').children().click(function(){ alert('hello'); }); $('#test').children().off('click'); }); 

CHEKOUT FIDDLE ET VOIR LES AIDE

En savoir plus sur .off ()

Je n'ai aucune expérience, mais il semble que BlockUI soit ce que vous recherchez. Donnez-lui un essai.

Javascript pur jQuery

 <script type="text/javascript"> function sah() { sah1(document.getElementById("div1")); } function sah1(el) { try { el.disabled = el.disabled ? false : true; } catch (E) {} if (el.childNodes && el.childNodes.length > 0) { for (var x = 0; x < el.childNodes.length; x++) { sah1(el.childNodes[x]); } } } </script> <body> <div id="div1"> <input type="text" value="SAH Computer" /> <br /> <input type="button" value="SAH Computer" /> <br /> <input type="radio" name="sex" value="Male" />Male <Br /> <input type="radio" name="sex" value="Female" />Female <Br /> </div> <Br /> <Br /> <input type="button" value="Click" onclick="sah()" /> </body> 

Vous ne pouvez pas utiliser "désactiver" pour désactiver un événement de clic. Je ne sais pas comment ou si cela fonctionnait dans IE6-9, mais cela ne fonctionnait pas sur Chrome, et cela ne devrait pas fonctionner sur IE10 comme ça.

Vous pouvez également désactiver l'événement onclick en associant un événement annulant:

 ;(function () { function cancel () { return false; }; document.getElementById("test").disabled = true; var nodes = document.getElementById("test").getElementsByTagName('*'); console.log(nodes); for (var i = 0; i < nodes.length; i++) { nodes[i].setAttribute('disabled', true); nodes[i].onclick = cancel; } }()); 

En outre, le réglage "désactivé" sur un nœud directement n'ajoute pas nécessairement l'attribut – en utilisant setAttribute.

http://jsfiddle.net/2fPZu/