jQuery: eleman tıklandığında kez sınıfını kaldırmak

2 Cevap php

Biraz jQuery sorun şaşırıp. Ben (50'den fazla) bir php döngü oluşturulan bağlantıları bir koleksiyona sahip. Bir kullanıcı bir linke tıkladığında, jQuery load olayı denir ve (aşağıdaki örnekte page.php denir) bir PHP / MySQL komut sayfadaki boş bir div içine yüklenir.

Ben sınıf istiyorsunuz (". Klas") etiketi ve başka bir sınıfın (". newclass") ile değiştirilir. Bilgiler sadece ilk tıklama yüklü böylece bu.

Html:

<a class='classy' name='marvin'>Click to toggle info</a>
<div id='marvin'></div>

JQuery:

$(document).ready(function(){
    $(".classy").click(function(){
        var foo = $(this).attr("name");
        $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
        $(this).removeClass('classy');
        $(this).addClass('newclass');
        return false;
    });
});

Teşekkürler!

2 Cevap

Olumlu değil - ama yerine (kullanım $ (canlı).) Gibi bunu yapmak gerekebilir:

$(document).ready(function(){
    $(".classy").live('click', function(){
        var foo = $(this).attr("name");
        $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
        $(this).removeClass('classy').addClass('newclass');
        return false;
    });
});

Eğer sınıf anlamına gelmez değiştirmek sırf click olay işleyicisi bağlantı kaldırılır. Bunu elle unbind için gereken ya da sadece bağlantı var ne sınıf denetleyen bir if deyimi katacak.

Ya da kullanmak live click olay bağlamak için çalışır.