2009-06-10 8 views
7

J'ai un simple clic et afficher, cliquer et cacher le bouton, mais quand je clique dessus, la page s'ancre en haut de la page. Est-il un moyen d'empêcher cela? Alors que quand je clique sur le bouton, je reste au même endroit dans le navigateur?jQuery click me mène au début de la page. Mais je veux rester où je suis

Mon code est ..

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
    $('#reportThis').show("slow"); 
}); 
$('#submitFlag').click(function() { 
    $('#reportThis').hide("slow"); 
}); 

Répondre

17

Essayez ceci:

$('#reportThis').hide(); 

$('#flagThis').click(function (evt) { 
     $('#reportThis').show("slow"); 
     evt.preventDefault(); 
}); 
$('#submitFlag').click(function (evt) { 
     $('#reportThis').hide("slow"); 
     evt.preventDefault(); 
}); 
+0

Wow merci une katrillion !! – Trip

4

Vous êtes probablement liez cette clique à un < une étiquette > qui a une action par défaut. Pour éviter cela, vous pouvez utiliser une autre balise comme <div> ou vous pouvez le faire:

$('#flagThis').click(function (event) { 
     $('#reportThis').show("slow"); 
     event.preventDefault(); 
}); 
+0

Pourquoi voter à la baisse? Qu'est-ce qui ne va pas? –

+0

+1 pour annuler, rien à redire –

4

essayer de retourner false dans la fonction click:

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
     $('#reportThis').show("slow"); 
     return false; 
}); 
$('#submitFlag').click(function() { 
     $('#reportThis').hide("slow"); 
     return false; 
}); 
+0

Cela fonctionne très bien aussi! Je vous remercie! – Trip

3

Modifier les hyperliens pour pointer vers un inexistante ancre, comme ceci:

<a href="#IDontExist" id="flagThis">Flag</a> 

Ou, faire vos gestionnaires reviennent false, comme ceci:

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
    $('#reportThis').show("slow"); 
    return false; 
}); 
$('#submitFlag').click(function() { 
    $('#reportThis').hide("slow"); 
    return false; 
}); 
0

Si vous utilisez un élément <button>, n'oubliez pas de définir l'attribut type.

<button type="button">My Button</button> 

Certains navigateurs sont envoyés par défaut, ce qui vous ramène au début de votre page.

C'est là où je me trompais de toute façon et je n'ai rien vu à ce sujet alors j'ai pensé partager mes deux cents pour les futurs lecteurs.

Questions connexes