2012-08-24 2 views
1
$("#txt_catId").change(function(){ 

    var catId = $('#txt_catId').val(); 

    $(".news-row").remove(); 
    $("#txt_news_id").remove(); 

    $.ajax({ 
      type: "POST", 
      url: 'urlExample', 
      data : {cat_id : catId}, 
      success: function(data) { 
      $('#txt_catId').parent().append(data); 
      }, 

      statusCode: { 
      404: function() { 
       alert("page not found"); 
      } 
      } 


     }); 

}); 

Ce que fait ce code est le suivant: lorsqu'un utilisateur choisit une catégorie, une liste de nouvelles de cette catégorie apparaîtra comme une selectbox. Mais le fait est que chaque fois que je choisis une catégorie, elle saute toujours en haut de la page. Comment puis-je empêcher cela?jquery La fonction remove() provoque le saut en haut de la page

+0

s'il vous plaît mettre en place un exemple violon :) également poster votre balisage –

Répondre

1

Il semble que vous utilisiez un lien avec href="#" comme moyen de choisir une catégorie. Activer le lien vous amènera en haut de la page, car c'est ce que signifie le signet vide.

Utilisation preventDefault dans le gestionnaire d'événements pour arrêter le lien d'être activé:

$("#txt_catId").change(function(e){ 
    e.preventDefault(); 
    ... 
+0

Désolé pour ne pas mentionner à ce sujet, #txt_catId n'est pas un lien , c'est une liste déroulante () –

+0

La solution de Guffa ne fonctionne pas. Une idée s'il vous plaît? –

Questions connexes