[英]Function being run when bind in jquery document ready
我正在嘗試將click事件綁定到下面的函數,但是在准備好文檔綁定后,當前正在運行整個函數。
是否可以僅在click事件上運行它? 可能與我的方法的組成方式有關嗎?
提前致謝
$(function() {
$("#expand-search").on("click", search.resize());
});
var search = {
element: $('#search_advanced'),
resize: function() {
search.element.slideToggle(400, 'swing', search.buttonState());
},
buttonState: function() {
if(search.element.is(':hidden')) {
console.log('hidden');
} else {
console.log('visible');
}
}
};
您正在調用function
(處理程序),而不是將function
(處理程序)的reference
(名稱)傳遞給on() 。
更改
$("#expand-search").on("click", search.resize());
至
$("#expand-search").on("click", search.resize);
事件處理程序沒有括號 ! 您要傳遞要執行的功能,而不是執行結果。 另外,由於將選擇器用於初始化,因此您將需要在就緒處理程序內移動search
對象。
$(function() {
var search = {
element: $('#search_advanced'),
resize: function() {
search.element.slideToggle(400, 'swing', search.buttonState);
},
buttonState: function() {
if(search.element.is(':hidden')) {
console.log('hidden');
} else {
console.log('visible');
}
}
};
$("#expand-search").on("click", search.resize);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.