2012-12-06 50 views
0
<table id="area-work-time" class="table" data-user-message="work time"> 
<tbody> 
    <tr class="work-time-block"> 
    <td class="days"> 
     <label class="checbox_label">    
     <span class="checkbox" style="background-position: 0px -68px;"></span> 
     <input type="checkbox" class="styled" data-content-key="Check Monday" data-original-value="False"> 
     <span class="work-time-text">Monday</span> 
     </label> 
    </td> 
    </tr> 
</tbody> 
</table> 

我有下面的代碼,在鉻和Firefox的工作原理,但是使用在IE8該溶液失敗以下:表單選擇器如何使用JQuery 1.8.3來選擇下面代碼中的複選框?

$.each($('.work-time-block'), function() { 
    alert("inside work-time-block"); 
    $('input:checkbox').change(function() { 
     alert("inside change event"); 
    }); 
}); 

這是整個代碼塊

這提示替代語法(es)$('input[type="checkbox"]' ...等也不工作,我看到inside work-time-block 7次,每<tr>其中有work-time-block類上;我從來沒有看到inside change event警報框,它每次在Chrome和Firefox上彈出。

我沒有得到任何錯誤,除了IE 8抱怨腳本每隔一段時間運行緩慢。

我沒有寫這個,我繼承了它,我知道這不是正確的方法,但我已經嘗試了一個多小時才能找出正確的語法,將這個應用於IE中的checkbox 8沒有成功,所以我呼籲stackoverflow集體解決方案。

+4

您是否嘗試過$('input [type =「checkbox」]'?? – jtheman

+0

您是否收到錯誤或類似的錯誤消息?您是否可以在jsfiddle上設置示例? –

+1

'$('input [type =「checkbox」]',this).on('change',function(){...});'取決於this是什麼,並且該選擇器應該不會在IE8中失敗,而且我很漂亮確定IE8的問題在於你的代碼中的其他地方? – adeneo

回答

1

這應該工作:

$("input[type='checkbox']").on("change",function(){window.alert("checked");}); 
3

在IE10測試在IE8瀏覽器模式和IE8文檔模式下運行:

$('input:checkbox').change(function() { 
    if ($(this).is(':checked')) { 
     alert('checked'); 
    } else { 
     alert('unchecked'); 
    } 
});​ 

http://jsfiddle.net/33uEP/1/

+0

這可能適用於jsfiddle,但它不適用於IE8以外的地方。 –

+0

有沒有很多其他的JS在你遇到麻煩的頁面上? –

+0

不幸的是,廢話加載:-( –

0

如果表的數據由JS,那麼你加入可能需要添加on()處理程序,如:

$('#area-work-time').on('change','input[type="checkbox"]',function(){ 
    alert("inside change event"); 
}); 

這使得動態創建的元素的事件觸發器。