2012-05-23 17 views
8

Şu anda pjax kullanıyorum ve harika çalışıyor ama iki jQuery işlevini çalıştırmam gerekiyor, pjax yeni url'yi yüklemeden önce ve yeni url yüklendikten sonra, bunu nasıl yapabilirim?jQuery, pjax yükünden önce ve sonra nasıl çalıştırılır?

Aşağıdaki iki varyasyonu denedim, ancak ikisi de çalışmıyor gibi görünüyor?

İlk girişimi:

$("a").pjax("#main").live('click', function(){ 

    //Function Before Load 
    // Function After Load 
}) 

İkinci girişimi:

$("body").on("click", "a", function(){ 

    //Function Before Load 

    $(this).pjax("#main"); 

    //Function After Load 

    return false; 
}); 
+1

için kod örneği [Google Dokümanlar] içinde ne denedin mi (https://github.com/defunkt/jquery-pjax#events)? –

+0

@ChristianVarga O bölümü kaçırdım, jQuery bölümünün sunucu tarafına geçtikten sonra bittiğini düşündüm. – Dan

cevap

24

onlar iki etkinlik ateş edeceği

pjax gerekenler için, dokümanına herepjax yangınları iki olay söylediği gibi konteyner üzerinde yanıtını sordunuz. o: pjax: start - pjax ajax isteği başladığında tetiklenir.

pjax: end - pjax ajax isteği sona erdiğinde tetiklenir.

Ve bu

$('a.pjax').pjax('#main') 
$('#main') 
    .on('pjax:start', function() { //do what you want to do before start }) 
    .on('pjax:end', function() { //after the request ends }); 
2
$("body").on("click", "a", function(){ 

$(this).pjax("#main"); 
$('a.pjax').pjax('#main') 
$('#main').on('pjax:start', function() { /* your code before ajax load */ }); 
$('#main').on('pjax:end', function() { /* your code after ajax load */ }); 

    return false; 
}); 
İlgili konular