[英]Jquery Checkbox change event not firing
我正在嘗試解決過去一個小時的這個小問題:
<script type="text/javascript">
$(document).ready(function(){
$("input[name='isClubMember']:checkbox").mousedown(function() {
if (!$(this).is(':checked')) {
this.checked = confirm("Are you sure?");
$(this).trigger("change");
}
});
});
</script>
有趣的是,這在JSFiddle ..中有效,但在我的jsp頁面中無效。 樣品
上面的代碼使我在此行出現null
錯誤(在調試控制台中)
$("input[name='isClubMember']:checkbox").mousedown(function() {
JQ -Ver:1.7.2瀏覽器:IE8
更新 :IE控制台中的錯誤:
'null' is null or not an object
在上述行
看來您的JSP頁面在jQuery之后包含Prototype庫。
原型的$()函數帶有一個id,如果找不到該元素,則返回null
,這與您觀察到的行為一致。
嘗試在代碼中的所有位置使用jQuery
而不是$
:
jQuery("input[name='isClubMember']:checkbox").mousedown(function() {
// ...
});
或者將您的代碼放在$
參數中傳遞jQuery
對象的閉包中:
(function($) {
// The rest of your code...
})(jQuery);
或采取的事實,即一個ready
處理程序通過相同的$
參數:
jQuery(document).ready(function($) {
// The code in your 'ready' handler...
});
您可能還想在noConflict模式下運行jQuery,以避免在包含順序更改時重寫Prototype的$()
函數。
我建議,您可以在復選框中添加一個類名,然后通過一個類名找到該復選框! 在這種情況下,似乎多數民眾贊成在ie8的問題!
我認為您的頁面中jQuery未連接。 校驗。
我認為是因為$-無論如何都會返回對象,但是如果沒有jQuery,則$(str)返回null。
我猜選擇器在IE8中壞了,嘗試[type ='checkbox'],無論如何應該更快
$("input[name='isClubMember'][type='checkbox']").mousedown(function() {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.