2013-08-26 26 views
9

Aşağıdaki bağımsız dizini çalıştırdığımda, onay kutusu işaretlenir ve bir kez işaretlenmez, ancak daha sonra iletiler geçişi etkiliyor gibi görünmüyor. bunun yerine kontrol etmek için .attr() veNeden jQuery onay kutusunu işaretlemiyor/işaretini kaldırmıyor

$("#fc").prop("checked", true);// true to check false to uncheck 

da kullanmak işaretini onay kutuları) (.prop kullanımı

<html> 
<head> 
<title>dummy</title> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 
<input id="fc" type="checkbox" /> 
<script> 
function f() { 
    if (typeof $("#fc").attr("checked") !== 'undefined') { 
    alert("checked, unchecking"); 
    $("#fc").removeAttr("checked"); 
    } else { 
    alert("unchecked, checking"); 
    $("#fc").attr("checked", "checked"); 
    } 
    setTimeout(f, 1000); 
} 
setTimeout(f, 1000); 
</script> 
</body> 
</html> 
+1

Firefox'ta test edildi ve ilk kez çalışıyor gibi görünüyor, ancak daha sonra yalnızca işaretlenmemiş olarak işleniyor. –

+0

doğru, Chrome ve Firefox'ta benim için aynı – necromancer

cevap

20

ihtiyaç: bir onay kutusu kontrol edilir olmadığını kontrol etmek için bir filtre kontrol

function f() { 
    if ($("#fc").is(":checked")) { 
     alert("checked, unchecking"); 
     $("#fc").prop("checked", false); 
    } else { 
     alert("unchecked, checking"); 
     $("#fc").prop("checked", true); 
    } 
    setTimeout(f, 1000); 
} 
setTimeout(f, 1000); 

Yukarıda verilen örnek,

olarak sadeleştirilebilir.

Demo: Fiddle

+0

Ayrıca 'attr' kullanımıyla ilgili bir sorun yok. http://jsfiddle.net/YC2TS/ – Vandesh

+0

@Vandesh burada başarısız olur http://jsfiddle.net/arunpjohny/fDZXR/1/ –

+2

@Vandesh: Bu konuda çok yanlış var. 'Checked' * özniteliği * ile' checked' * özellik * arasında büyük bir fark var, özellik şu anki değeri alır/ayarlar ve öznitelik başlangıç ​​değerini alır/ayarlar ve (durumu etkilemez) daha sonra kutunun). – cHao

İlgili konular