40 votes

Jquery onclick on div

J'ai une question simple. Le code suivant fonctionne pour toutes les balises :

$('*').click(function(e) {  
    alert(1);
});

Mais lorsque j'essaie ce code pour la div avec l'id "content" :

$('#content').click(function(e) {  
    alert(1);
});

Qu'est-ce que je fais de travers ?

56voto

Steve Robbins Points 6189

Assurez-vous qu'il se trouve dans une balise prête à l'emploiAlternativement, essayez d'utiliser .live

$(document).ready(function(){

    $('#content').live('click', function(e) {  
        alert(1);
    });
});

Exemple :

$(document).ready(function() {
    $('#content').click(function(e) {  
      alert(1);
    });
});

#content {
    padding: 20px;
    background: blue;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="content">Hello world</div>

Depuis jQuery 1.7, la méthode .live() est obsolète. Utilisez .on() pour attacher des gestionnaires d'événements.

$('#content').on( "click", function() {
    alert(1);
});

14voto

freedompeace Points 4717

Rien.

$('#content').click(function(e) {  
    alert(1);
});

Se lie à un existant L'élément HTML dont l'ID est fixé à content et affichera une boîte de message en cas de clic.

  • Veillez à ce que #content existe avant d'utiliser ce code
  • Que l'identifiant est unique
  • Vérifiez que votre console Javascript ne contient pas d'erreurs ou de problèmes

3voto

Ryosuke Hujisawa Points 512

Js

<script
  src="https://code.jquery.com/jquery-2.2.4.min.js"
  integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
  crossorigin="anonymous"></script>

<script type="text/javascript">

$(document).ready(function(){
    $("#div1").on('click', function(){
            console.log("click!!!");
        });
});

</script>

html

<div id="div1">div!</div>

1voto

Mironor Points 1115

La div avec id="content" peut-elle ne pas être créée lorsque cet événement est attaché ? Vous pouvez essayer la méthode jquery live().

Sinon, il peut y avoir plusieurs divs avec le même id ou vous l'avez mal orthographié, cela arrive...

1voto

ShankarSangoli Points 45345

Envelopper le code dans $(document).ready() ou $() .

$(function(){

$('#content').click(function(e) {  
    alert(1);
});

});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X