JQuery

2012-06-14 2 views
54

'u kullanarak bir olayı tetikleyen öğenin sınıfını, tıklama olayı tetiklendiğinde sınıfı almak için yine de var. Aşağıdaki gibi kodum, sadece id değil, sınıf için çalışıyor.JQuery

html:

<html> 
<body>  
<a href="#" id="kana1" class="konbo">click me 1</a> 
<a href="#" id="kana2" class="kinta">click me 2</a> 
</body> 
</html> 

JQuery:

$(document).ready(function() { 
    $("a").click(function(event) { 
     alert(event.target.id+" and "+event.target.class); 
    }); 
}); 

jsfiddle kod here

+11

Sınıf ECMAScript'te ayrılmış bir çalışmadır, bu nedenle sınıf özniteliği 'className 'DOM özelliğine eşlenir. 'Event.target.className' kullanın. .className' için – RobG

cevap

103

Dene:

$(document).ready(function() { 
    $("a").click(function(event) { 
     alert(event.target.id+" and "+$(event.target).attr('class')); 
    }); 
}); 
71

Bu tam sınıfını (mult olabilir içerecektir Öğe birden fazla sınıfa sahipse, alanlara ayrılmış alanlar. Kodunuzda bu "konbo" veya "Kinta" ya içerecektir:

event.target.className 
isme sınıflar için denetlemek için jQuery kullanabilirsiniz

:

$(event.target).hasClass('konbo'); 

ve addClass ve removeClass bunları eklemek veya kaldırmak için .

+5

+1. Bir sebepten dolayı –

1

jQuery 1.7 kullanıyorsanız:

alert($(this).prop("class")); 

ya:

alert($(event.target).prop("class")); 
1
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
    </head> 
<body>  
<a href="#" id="kana1" class="konbo">click me 1</a> 
<a href="#" id="kana2" class="kinta">click me 2</a> 

<script> 
    $(document).ready(function() { 
    $("a").click(function(event) { 
     var myClass = $(this).attr("class"); 
     var myId = $(this).attr('id'); 
     alert(myClass + " " + myId); 
    }); 
}) 
</script>> 
</body> 
</html> 

Bu benim için çalışıyor. JQuery'de event.target.class işlevi yoktur.

+0

olayları kullanmak zorundayım, yine de cevabınız için teşekkürler. Broesch ihtiyacım olanı yanıtladı. – Redbox

0

target gibi dikkatli olun tüm tarayıcılarla çalışmayabilir, Chrome ile iyi çalışır, ancak Firefox (veya IE/Edge, hatırlayamıyorum) biraz farklıdır ve srcElement kullanır. Genellikle

var t = ev.srcElement || ev.target; 

gibi bir şey, böylece güzel cevaplar için

$(document).ready(function() { 
    $("a").click(function(ev) { 
     // get target depending on what API's in use 
     var t = ev.srcElement || ev.target; 

     alert(t.id+" and "+$(t).attr('class')); 
    }); 
}); 

Thx giden yok!