2013-07-10 110 views
0

我正在使用jQuery 1.8.3。我想觸發每個複選框狀態更改。無法觸發複選框更改

此代碼的工作,當我把它的單擊事件中:

$("#btn_off").click(function(){ 
    $("tr td input").each(function(index) 
    { 
    if ($(this).is(":checked")) 
    { 
     //some code 
    } 
    }); 
}); 

但是當我使用這個代碼,它不是:

$('tr td input').on('change', function(){ 
    if(this.checked) 
    { 
     //something 
    } 
}); 

$('tr td input').live('change', function(){ 
    if(this.checked) 
    { 
     //something 
    } 
}); 

然後我有試過

以及以下內容:

$('tr td :checkbox').change(function() { 
    if(this.checked) 
    { 
     //something 
    } 
}); 

我在做什麼錯?此代碼位於.ready() 這是網站,所以我敢肯定,selector應該工作的唯一複選框...

+0

我認爲你應該在最後三種情況下使用$(this).is(「:checked」),而不是this.checked –

+0

@JonasGrumann我不這麼認爲 –

+0

你能分享你的代碼嗎? jsfiddle – Praveen

回答

0

您可以使用click事件:

$('tr td input').on("click", function() { 
    if ($(this).is(':checked')) { 

    } 
}); 
+0

我已經嘗試點擊也沒有 –

+0

請分享您的HTML代碼以及。 – mishik

0

試試這個,你有使用$(本)。是( ':檢查'),而不是this.checked

HTML

<table> 
    <tr> 
     <td><input type="checkbox"/> </td> 
    </tr> 
    <tr> 
     <td><input type="checkbox"/> </td> 
    </tr> 
    <tr> 
     <td><input type="checkbox"/> </td> 
    </tr> 
</table> 

JS

$(document).ready(function() { 
    $('tr td input[type="checkbox"]').on('change', function(){ 
     if($(this).is(':checked')) 
      alert('checked'); 
     else 
      alert('not checked'); 
    }); 
}); 

小提琴:http://jsfiddle.net/nuxbox/vxyHq/

+0

'this.checked'也適用於你的小提琴。 – mohkhan

+0

我知道這應該有效,但不是......沒有任何事情被觸發。 –

+0

你的意思是你沒有看到彈出的警報? –

0

這是否幫助?:http://jsfiddle.net/msapD/3/

$(document).ready(function(){ 
    $('tr td input').change(function() { 
     if(this.checked) 
     { 
      alert("Checked"); 
     } 
    }); 
}); 
+0

試過它,仍然不工作 –

+0

我擺出的jsfiddle與我所提出的工作。 然後必須有某種形式的問題或衝突。你可以把你的工作放在jsfiddle嗎?我不介意看看它。 – Grallen

0
$(document).ready(function(){ 
    $('body').delegate('td input:checkbox','click',function() { 
     if($(this).is(':checked')) 
     { 
      alert("Checked"); 
     } 
    }); 
}); 
0

您需要檢查與財產檢查

$('input').on('change',function(){ 
    if($(this).prop('checked')) 
     alert('checked'); 
    else 
     alert('unchecked'); 
}); 

選中此demo

+0

此外,請檢查您使用的jQuery版本應該是1.7或更高,因爲實時已從1.7棄用 –

+0

@ user123_456這是否解決您的問題? –