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