2011-02-08 2 views
0

Je suis sur le point de faire une fonction sur jQuery comme ceci:Jquery - .cliquez() qui ne marche pas faire défiler la page

$(document).ready(function() { 
    $('#header_rules').click(function() { 
     // here i define myFunction() 
    }); 
}); 

<a id="header_rules" href="#">RULES</a> 

au lieu de

<a id="header_rules" href="#" onClick="myFunction();return false">RULES</a> 

Mais je ne sais pas comment pour empêcher le défilement vers le haut de la page en utilisant jQuery après que quelqu'un clique sur le lien. En fait, je vais me débarrasser du JS natif, ce qui pourrait causer quelques problèmes (c'est pourquoi j'utilise un framework JS comme jQuery).

Une aide? Vive

Répondre

6

Appel e.preventDefault();e est le premier argument de votre gestionnaire de clic:

$(document).ready(function() { 
    $('#header_rules').click(function(e) { 
     e.preventDefault(); 
     // here i define myFunction() 
    }); 
}); 

<a id="header_rules" href="#">RULES</a> 
+0

Uhm bien. Ce qui est mieux? 'e.preventDefault();' ou simplement 'return false;'? – markzzz

+0

'e.preventDefault()' - voir mon commentaire sur l'autre réponse. – ThiefMaster

3

Le ci-dessous également, mais il va arrêter d'autres événements cliquez sur l'élément, je pense.

(document).ready(function() { 
    $('#header_rules').click(function() { 
     // here i define myFunction() 
    return false; 
    }); 
}); 
+0

Renvoyer false arrête également la propagation de l'événement qui ne causera probablement pas de problèmes mais n'est pas vraiment nécessaire et, dans certains cas, peut réellement causer des problèmes. – ThiefMaster

+0

Cela dépend si vous voulez que le clic déclenche également autre chose. – Matrym

2

Qu'ont dit ThiefMaster, et vous pouvez également l'intérieur de votre return false; inclue intead fonction de ligne.

+0

Il a remplacé la merde onclick en ligne avec le gestionnaire d'événement approprié - donc il n'incruste rien – ThiefMaster