[英]Javascript firing on page load instead of event (Bug)
当我在事件上调用函数时,遇到了最奇怪的问题。 我正在尝试使用$(window).resize()
调整窗口大小时要运行的函数,但似乎在DOM加载后立即触发该函数,然后再也不会触发。
我可能在这里遗漏了一些非常简单的东西,但是我整天都在寻找它,我需要一些外部帮助。
我在JSfiddle上创建了一个精简版本,该版本执行相同的操作,但是使用$('a').click()
而不是$(window).resize()
因此测试起来更容易一些。 由于出现了同样的问题,我感觉我的功能有问题,但是我看不到它。
尝试:
$('a').click(function(){
alert('hello');
}, imageResizer());
您正在运行该函数并将其输出作为参数发送到jQuery something中:
$('a').click(alert('hello'), imageResizer());
相反,请尝试以下操作:
$('a').click(function() {alert('hello'); imageResizer(); });
这提供了一个匿名函数,该函数将在单击该项目时运行,调用imageResizer(),而您拥有它的方式是运行imageResizer()函数,并将其返回值放入onclick处理程序中。 以后不起作用的原因是,它将把imageResizer()函数的返回值当作试图运行的代码来对待。
您正在触发事件,而不是为其分配处理程序
$('a').click(alert('hello'), imageResizer());
应该
$('a').click(function(event) {
event.preventDefault(); // I suppose you will want that ... it will avoid your window jumping to the top when you click due to the href="#"
alert('hello');
imageResizer();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.