代码如下:
$(".password").on("keydown", function(e) {
if (e.keyCode === 13 && !e.ctrlKey) {
e.preventDefault();
$('.loading-btn').click(denlu());
}
})
$(".loading-btn").click(function(){denlu()});
如果$(".loading-btn").click(function(){denlu()});写成$(".loading-btn").click(denlu());页面刷新会直接执行,但是在$(".password").on("keydown", function(e) {})里面却不会,为什么呢?请指教Thanks♪(・ω・)ノ
首先要先理解 jQuery 事件方法:
事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。
结合你的代码
触发:
绑定函数:
如果触发的情况下,没有放在某个操作的回调(函数)中,在读取到当前代码行的时候就会触发,故
$('.loading-btn').click(denlu());会立即触发$('.loading-btn').click,
所以click()中denlu()也会作为函数表达式语句执行。