2010-09-14 14 views
8

je suis en train de se jquery cacher cette div et pour une raison quelconque, il ne fonctionne pas ce que je fais malJquery bascule ne fonctionne pas

http://stat-me.com/jq.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<style type="text/css"> 
#one{ 
    border:3px solid #00F; 
    width:50%; 
} 
#hideme{ 
    border:3px solid #00F; 
    width:50%; 
    display:none; 
} 
</style> 

<script type="text/javascript" src="../_root/js/jquery/jquery-1.4.2.js"></script> 

<script language="javascript" type="text/javascript"> 



$("#one").click(function() { 
$("#hideme").toggle(); 
}); 

</script> 

</head> 

<body> 

<div id="one"> 
<a href="#">hello</a> 
</div> 

<div id="hideme"> 
hi 
</div> 


</body> 
</html> 

Répondre

14

Vous devez:

  1. Utiliser document.ready
  2. Sélectionnez l'ancrage sous le #one div, non t il se div

Il doit donc être:

$(document).ready(function() { 
    $("#one a").click(function() { 
    $("#hideme").toggle(); 
    }); 
}); 
+1

Les deux gotchas j'ai rencontré des fois de maaaany :) –

0

J'ai la même situation tout en utilisant Ajax et a appliqué cette solution. Écrire javascript: void (0); au lieu d'un '#' en valeur href. Cela vous empêche d'ajouter "#" dans l'URL. utilisez .live() lors de l'utilisation en mode ajax. dans .toggle(), passez argument comme effet comme 'Drop', 'slide' etc, plus à http://jqueryui.com/toggle/.

$(document).ready(function(){ 
     $('#one a').live('click', function(){ 
      $('#hideme').toggle('Drop'); 
      return false; 
     }); 
    }); 

Application de retour false; enfin, je ne peux pas recharger la page.

Répondu juste pour la connaissance.

0

Vous n'êtes pas en train d'encapsuler votre javascript dans $(document).ready(function(){}) etc. jQuery essaie de trouver un élément qui n'existe pas encore!