2013-09-21 20 views
6

Çok fazla araştırma yaptıktan sonra bir cevap bulamadım. Twenty Twelve wordpress temasını kullanıyorum ve ajax istekleri ile sayfalar yükler gibi görünüyor. Sayfamdaki başka bir öğeyi gösteren ve gizleyen bir düğme (# başlık-gezinme bağlantısı) var. Ajax aramaları olmadan ilk sayfa yüklemesi üzerinde çalışır, ancak başka bir sayfaya gittiğimde ajax yükler ve programım artık # nav-mobile-wrapper'ı bulamıyor. jQuery ajax yükünden sonra öğeyi seçemez

 $(document).on('click', "#header-navigation-link", function() { 

     $(document).find("#nav-mobile-wrapper").fadeToggle(); 
     alert('Success!'); 
    }); 

tüm ajax yüklenen sayfalarda uyarı daima açılır, bu nedenle düğmeye adil değil göstermek için eleman ve gizlemek bulmaya çalışıyor. Ayrıca ikisini değiştirmeyi denedim, böylece # header-navigation-link'i değiştirmek için # nav-mobile-wrapper'ı tıklatıyorsunuz ve aynı şey sadece tam tersi oluyor.

Bu işlevde # nav-mobile-wrapper'ı hedeflemek için ne kaçırıyorum?

Yardım edebilecek herkese teşekkürler!

+0

yazmak ve daha kolay bir yolu olduğunu düşünüyorum, ama geçici bir çözüm olarak, sizinle javascript yüklemeye deneyebilirsiniz ajax çağrısı, o zaman işe yarayacak. (eğer bu mümkün değilse hiçbir fikrim yok bunu yapmak için wordpress çimdik olabilir) – Cesc

+0

Bu soru belirsizdir. "Twenty Twelve wordpress temasını kullanıyorum ve ajax istekleri ile sayfalar yükleniyor gibi görünüyor." 2012'nin ajax istekleri ile herhangi bir sayfa yüklemediğini düşünmüyorum. –

cevap

1

Kimliği biliyorsanız, tekrar bulmanız gerekmiyorsa, sadece onu seçin.

$(document).on('click', "#header-navigation-link", function() {  
     $("#nav-mobile-wrapper").fadeToggle(); 
     alert('Success!'); 
    }); 
+0

maalesef bunu da denedim. Başka bir önerin var mı? – user2801463

1

ajax tarafından oluşturulan bu öğe ("# nav-mobile-wrapper") öğesi midir? Öyleyse, tıklama işlevinizin ve bu öğenin oluşturulduğu yerin aynı "kapsamda" olduğundan emin olun. Örneğin:

$(document).ready(function() { 
     $.ajax({ 
     // this is where you send the ajax request to server 
     {).done(function(response){ 
     //because you said, it loaded page via ajax request, so page's loading and #nav-mobile-wrapper's generating probably happened here 
     // If so, try put your click function here, inside the 'done' block! 
     &(document).on('click',"#header-navigation-link",function(){ 
     // your stuff 
    }); 
    }) 

Ben çalışmıyor sizin işlevi # nav-mobil-sarıcı eleman bulamıyor çünkü neden düşünüyorum. Kodun olmadan bu sahip olabileceğim en iyi tahmin. Her neyse, hala bu problemin varsa haber ver.

BTW,

$("#header-navigation-link").on('click',function(){ 
// you code 
}); 

ben cevabını bilmek istiyorum okumak :)