簡體   English   中英

為什么我的 jquery 更改事件沒有觸發?

[英]why is my jquery change event not firing?

嘿,所以我試圖用某個類來定位我頁面中的所有元素。 我在觸發查詢更改功能時遇到問題。 所以我嘗試了很多東西,但仍然沒有觸發。 它會在我加載頁面的一開始就觸發,但永遠不會在它之后觸發,並且我收到一條錯誤消息,說“這個”沒有更改功能。 但是,當我記錄這是什么時,它清楚地顯示它是一個復選框。 無論如何,任何幫助都會受到贊賞,因為這應該是一件非常容易的事情,我想我錯過了一些小事。

     $(".rcbCheckBox")
            .each(function () {
                    console.log(this);
                    this.change(console.log("Changed"));
                });
        });

您正在調用this.change它將返回undefined ,因為change是一個 jQuery 函數。 要使其正常工作,請使用:

$(this).change(function(){console.log(this)})
 $(".rcbCheckBox")
        .each(function () {
                console.log($(this));
            });
    });

使用 $(this) 而不是 this。

演示: https : //jsbin.com/niqefe/2/edit?html,js,console,output

change()函數是 jQuery API 的一部分。 普通 DOM 對象不包括 jQuery 的函數。 您可以創建一個新的 jQuery 對象,將 DOM 對象傳遞給 jQuery 函數:

var checkbox = jQuery(this);

或者,簡稱:

var checkbox = $(this);

此外,您的代碼作為console.log("Changed")返回的change事件的處理程序傳遞,這不是函數。

你應該做這樣的事情

$(this).change( function(){ console.log("Changed"); });

另外,請注意語法錯誤。 你有一個額外的}); 在你的例子中。 考慮到前面提到的所有內容,您可以嘗試以下操作:

$(".rcbCheckBox").each(function () {
    console.log(this);
    var checkbox = $(this);

    var callback = function(){
        console.log("Changed");
    }

    checkbox.change(callback);
});  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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