簡體   English   中英

jQuery Checkbox更改事件未觸發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM