2010-12-03 8 views
1

J'ai div avec TextBox, étiquette et lien hypertexte. Je veux désactiver/activer les éléments à l'intérieur. J'utilise ce code.Désactiver Hyerperlink dans un Div en utilisant Jquery

$ ('# Content_2: input'). Attr ('disabled', true);

Content_2 - est un div

Mais cela laisse le hyerperlink et l'étiquette est activée. Comment peut-on modifier cela?

Répondre

0
$('#Content_2 :input').attr('disabled', true); 

only disables all <input /> element inside #Content_2 not <a> 

essaient

$('#Content_2 :input,#Content_2 a,#Content_2 span').attr('disabled', 'disabled'); 

pour leur permettre utilisation:

$('#Content_2 :input,#Content_2 a,#Content_2 span').removeAttr('disabled'); 
+0

': input' ne sélectionne pas les éléments' ', ce serait le sélecteur d'élément' input' (pas de deux-points) :) –

+0

@nick, merci pour cette info – jerjer

3

:input est uniquement pour le type d'entrée (<input>, <textarea>, <select> et <button>) éléments, pour les autres, vous aurez besoin d'ajouter au sélecteur:

$('#Content_2').find(':input, label').attr('disabled', true); 

Vous pouvez également faire un sélecteur, je viens trouver cela un peu plus propre à regarder, le seul sélecteur serait:

$('#Content_2 :input, #Content_2 label').attr('disabled', true); 

base sur les commentaires: Maintenant, pour les points d'ancrage, que l'on est un peu différent, vous êtes mieux lier les événements discrètement, par exemple:

$('#Content_2').delegate('img.toggle:not(.disabled)', 'click', function(e) { 
    window.scroll(150,650); 
    tooglecargoLoading(); 
}); 

Ensuite, ce lien peut juste être lui-même <img>, comme ceci:

<img class="toggle" src="images/accept_but1.jpg" width="119" height="20" border="0" /> 

Pour activer/désactiver, il suffit d'ajouter/retirer la classe disabled, comme ceci:

$("#Content_2 img.toggle").addClass("disabled"); 
//to re-enable: 
$("#Content_2 img.toggle").removeClass("disabled"); 

Par Pour ce faire, le lien ne correspondra pas au sélecteur lorsque les bulles d'événement click ... seront désactivées. Il y a aussi autres façons de faire, comme mettre la

+0

J'ai testé ce un – Techonthenet

+0

$ ('# Content_2 ') .find (': input, label, a '). attr (' désactivé ', vrai); et il diables tout le mais cette étiquette n'est pas désactivée. Techonthenet

+0

@Techonthenet - Voulez-vous le désactiver définitivement, ou prévoyez-vous de le réactiver plus tard? –

Questions connexes