Basit javascript'te sınıf adlarını değiştirmek için kullanabileceğiniz birkaç basit javascript işlevi vardır.
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function addClass(elem, cls) {
elem.className += (" " + cls);
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) != -1) ;
}
function toggleClass(elem, cls) {
if (hasClass(elem, cls)) {
removeClass(elem, cls);
} else {
addClass(elem, cls);
}
}
function toggleBetweenClasses(elem, cls1, cls2) {
if (hasClass(elem, cls1)) {
removeClass(elem, cls1);
addClass(elem, cls2);
} else if (hasClass(elem, cls2)) {
removeClass(elem, cls2);
addClass(elem, cls1);
}
}
Eğer black
ve normal
sınıflar arasında geçiş istiyorsa başka herhangi sınıfları etkilemeden: önce/sınıf isimlerinin sonra sadece bütün sınıf adlarıyla eşleşen ve fazladan boşluk önlemek için bu işlevlerde biraz ekstra iş alır belirtilen nesne, bunu yapabilirdi:
function black(id) {
var obj = document.getElementById(id);
if (obj) {
toggleBetweenClasses(obj, "black", "normal");
}
}
Çalışma örneği burada: http://jsfiddle.net/jfriend00/eR85c/
Eğer "normal" zaten mevcut değilse "siyah" sınıfını eklemek istedim, bunu yapabilirdiniz Bunu yapmak: Eğer/çok geçiş sınıfları eklemek/çıkarmak için gidiş değildir durumda
function black(id) {
var obj = document.getElementById(id);
if (obj && !hasClass(obj, "normal")) {
addClass(obj, "black");
}
}
Belki https://developer.mozilla.org/en-US/docs/DOM/element.classList size yardımcı olabilir. JQuery gibi ama sade javascript gibi, ama sadece çok moder tarayıcılarda çalışır. – Oriol