2016-04-08 21 views
-3

İki farklı komut dosyası yaşıyorum. Her iki betik de tek başına çalışır, ancak her iki betiği de sayfaya eklediğimde değil.sınıf eklemek ajax ile çalışmaz

AJAX kullanarak sayfaları değiştiriyorum, ancak jQuery'nin tıklattığım bağlantıyı vurgulamasını istiyorum, böylece "etkin" sayfayı gösterebilir.

Benim HTML:

<nav> 
    <ul id="navUl"> 
     <li class="active"><a href="#">test1</a></li> 
     <li ><a href="#">test2</a></li> 
    </ul> 
</nav> 
<div id="result"> 
    <div id="content"> 
     <p>random content</p> 
    </div> 
</div> 

My AJAX/jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<script> 
    (function($){ 
     $('nav a').click(function(){ 

      var href = $(this).attr('href')+' #content'; 

      $('#result').load(href); 

      return false; 
     }); 
    })(jQuery); 
</script> 

Bu mükemmel çalışıyor ama komut dosyasına bu eklediğinizde, o seçilmiş sayfayı vurgular, sonra benim AJAX çalışmıyor artık.

$(function() { 
    $('#navUl li').on('click', function() { 
     $(this).parent().find('li.active').removeClass('active'); 
     $(this).addClass('active'); 
    }); 
}); 
+2

Kodunuzdaki hiçbir 'span's bulunmamaktadır. $ (Function() {}) içindeki kod; vücut hazır olduğunda çalıştırılır, yani eğer bir eleman bulunmazsa (bu durumda, '#navUl span', bunun için herhangi bir kod çağrılmayacaktır. Bir hata olup olmadığını görmek için konsolu kontrol etmelisiniz. – Lemmmy

+0

büyük olasılıkla kodunuzda bir hata var.Ama AJAX'iniz ile paylaştığınız ikinci JS bloğunu çalıştırdığınızı varsayalım.Bir betik hataları olduğunda, istisna yapılmadığı sürece hiçbir şey yapılmazsa Konsolu kontrol edin. – Lemmmy

+0

@Lemmmy oops, özür dilerim çünkü bunun işe yarayıp yaramadığını görmek için li etrafında bir açıklık sarmayı denedim, çünkü aynı etiketler her iki işlevde de kullanılmayacaktı, ama işe yaramadı ... Ve ben sadece Bunu geri çevirmeyi unutmuştum –

cevap

2

Bu li kadar köpüren olayını önleyecek, nav a tık olaydan return false. için

Değişimi:

(function($){ 
     $('nav a').click(function(e){ 

      e.preventDefault(); 

      var href = $(this).attr('href')+' #content'; 

      $('#result').load(href); 
     }); 
    })(jQuery); 
İlgili konular