2009-03-06 23 views
0

Konsept web sitesi için bir kanıt oluşturmaya çalışıyorum ama mükemmel bir bozulma istiyorum. Bu şekilde, önce web sitesini düz XHTML kodlayacak ve daha sonra jQuery'ye bağlamak için & ids sınıfları ekleyeceğim.Jquery ile otomatik ajax seçiciler

Yapmak istediğim bir şey, sonunda tüm bağlantılarım için Ajax xmlhttprequest özelliğini etkinleştirdiğinden, bir viewport div'unda görüntüleniyor. Bu viewport'un birden fazla harici sayfadan herhangi bir xmlhttprequest için "evrensel" bir döküm olmasını istiyorum. Ben böyle bir şey hardcode mümkün olmadığımı

merak ediyorum:

<a href="blah.html" class="ajax">, <a href="bleat.html" class="ajax"> 

vb Gördüğünüz gibi Yani, ben sınıf ajax ile gelen Ajax isteklerini aramak istediğiniz tüm bağlantı etiketleri verir. JS'm jQuery'ye göre, tüm pozitif $ {"a") filtresinin ("ajax") ajax talebi olarak kendi değişkenlerini [değişken] otomatik olarak yükleyeceği şekilde kodlamak istiyorum.

Lütfen

Yardım edin. Ben bir n00b. $('.ajax') olarak yanlış okumuş olabilir, çünkü

$('.ajax').click(function() { 
    // Your code here. You should be able to get the href variable and 
    // do your ajax request based on it. Something like: 
    var url = $(this).attr('href'); 
    $.ajax({ 
     type: "GET", 
     url: url 
    }); 
    return false; // You need to return false so the link 
        // doesn't actually fire. 
}); 

Ben okumak için kod biraz garip yaptığından "ajax" dan farklı bir sınıf kullanarak öneririm: En örnekle

cevap

0

yapmanız gerekir $.ajax().

$('.ajax').click() bölümü, sayfadaki her öğe için bir "Click" olay işleyicisini, tam olarak istediğiniz "ajax" sınıfıyla birlikte kaydeder. Ardından, tıklanan linkin hrefini almak için $(this).attr('href') kullanın ve sonra ne gerekiyorsa onu yapın! gibi

+0

Çok teşekkür ederim! –

0

şey:

function callback(responseText){ 
    //load the returned html into a dom object and get the contents of #content 
    var html = $('#content',responseText)[0].innerHTML; 
    //assign it to the #content div 
    $('#content').html(html); 
} 

$('a.ajax').click(function(){ 
    $.get(this.href, callback); 
    return false; 
}); 

navigasyon defadan fazla gösterilmez, böylece dışarıdaki #content div olan her şeyi dışarı ayrıştırmak gerekiyor. Bir regexp'i düşünüyordum ama jQuery'yi kullanmak için daha kolay bir yöntemdi, bu yüzden örneği güncelledim.

+0

Çok teşekkür ederim! –