2010-03-04 7 views
2
<div id="pic"> 
    <div id="left"> 
    <img src="images/left.png" /> 
    </div> 
    <div id="right"> 
    <img src="images/right.png" /> 
    </div> 
</div> 

Je veux cacher la div avec id "droit" quand je clique sur le div avec id "gauche"jQuery, l'accès div dans un div

code J'utilise:

$("#left").click(function(){$("#right").hide();}); 
Ce

ne fonctionne pas, quelle est la raison? Et comment vais-je réaliser ce que j'ai l'intention de faire?

+0

votre code est assez basique ... pouvez-vous montrer votre code HTML? – matdumsa

+1

Fonctionne pour moi. Avez-vous ces éléments plusieurs fois dans votre page? – Kobi

+0

Hey Kobi, vous avez raison .. je viens de tester ce code .. il y a un autre problème .. mais je dint répéter un nom – ksskr

Répondre

3

Il y a une des trois choses mauvaises, puisque votre code est techniquement correct:

  1. Votre fonction de clic ne figure pas dans votre fonction $(document).ready
  2. page Votre répète ids. Utilisez des classes à la place.
  3. Vos divs sont créés dynamiquement et donc pas liés à $(document).ready

(1) est une solution simple. Il suffit de mettre dans votre $(document).ready. (2) il suffit de changer vos id attributs aux classes, mais si vous voulez vous assurer que vous cachez la bonne div vous devrez peut-être faire un peu de déplacement. (3) peut être fixé à l'aide $(selector).bind('click', function(){}); ou $(selector).live('click', function(){});

Bonne chance

MISE À JOUR (24/01/12) - Si vous utilisez jQuery 1.7+, vous devez utiliser $(selector).on('click', function(){});, pas bind() ou live()

1

Votre code semble être très bien, mais il semble que vous manquez l'événement de readyjQuery, essayez ceci:

$(function(){ 
$("#left").click(function(){ 
    $("#right").hide(); 
    }); 
}); 

Note:$(function(){ est forme courte de ready code d'événement.

+0

pas ça ne fonctionne pas .. merci – ksskr

+2

@srk: vos divs sont générés dynamiquement? – Sarfraz

2

Votre code est correct et fonctionne pour moi.

Autre chose ne va pas.

Essayez la mise en place du gestionnaire dans document.ready

$(document).ready(function() { 

    $("#left").click(function() { $("#right").hide(); }); 


}); 
0

Quelques possibilités:

  1. prévoiraient le fichier jquery.js dans la tête html
  2. sont-il pas des bugs dans le précédent javascript avant cette ligne jquery? Ils pourraient arrêter l'exécution avant d'atteindre ce point.
  3. sont uniques de l'id? Peut-être avez-vous plusieurs éléments avec id = 'right'?
1

L'événement click ne peut être ajouté après la div #probablement a chargé. Pour cette raison, enveloppez votre jquery existante dans un appel domready.

$(document).ready(function(){ 
    $("#left").click(function(){$("#right").hide();}); 
});