我正在尝试将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');
}
}
};
答案 0 :(得分:3)
您正在调用function
(处理程序),而不是将函数(处理程序)的reference
(名称)传递给on()。
更改
$("#expand-search").on("click", search.resize());
到的
$("#expand-search").on("click", search.resize);
答案 1 :(得分:1)
No parenthesis到事件处理程序!您希望传递要执行的函数,而不是执行它的结果。此外,您需要将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);
});