2009-02-01 8 views
0

Étant donné le code suivant, la fonction de survol fonctionne correctement, mais lorsqu'on clique dessus, la classe clicked_no_event_box est perdue. Je ne sais pas où je vais mal ...hover() et clic() ne joue pas bien ensemble

/* On document.ready.. */ $(function(){ 

     $(".no_event_box").hover(
      function(){$(this).addClass("clicked_no_event_box");}, 
      function(){$(this).removeClass("clicked_no_event_box");}  
     );  

     $(".no_event_box").click(
      function() {$(this).addClass("clicked_no_event_box");} 
     ); 

    }); 
+0

vraisemblablement, il perd la classe "clicked_no_event_box" lorsque vous quittez l'élément? –

+0

après avoir cliqué, je devrais ajouter –

Répondre

2

cela fonctionne exactement comme vous le disiez. Si vous voulez avoir une classe à coller, vous pouvez ajouter un alias à ce nom de classe dans css.

.clicked_no_event_box, .new_name_to_be_used_in_click_function { 
    /* definition */ 
} 
0

Puisque la fonction hover supprime la classe, même si vous cliquez, vous pourriez délie la fonction de vol stationnaire une fois que vous cliquez dessus.

$('.no_event_box').hover(
    function() { 
     $(this).addClass('clicked_no_event_box'); 
    }, function() { 
     $(this).removeClass('clicked_no_event_box'); 
    } 
).click(function() { 
    $(this) 
     .addClass('clicked_no_event_box') 
     .unbind('hover') 
    ; 
}); 
Questions connexes