繁体   English   中英

页面加载时触发JavaScript,而不是事件触发(错误)

[英]Javascript firing on page load instead of event (Bug)

当我在事件上调用函数时,遇到了最奇怪的问题。 我正在尝试使用$(window).resize()调整窗口大小时要运行的函数,但似乎在DOM加载后立即触发该函数,然后再也不会触发。

我可能在这里遗漏了一些非常简单的东西,但是我整天都在寻找它,我需要一些外部帮助。

我在JSfiddle上创建了一个精简版本,该版本执行相同的操作,但是使用$('a').click()而不是$(window).resize()因此测试起来更容易一些。 由于出现了同样的问题,我感觉我的功能有问题,但是我看不到它。

链接在这里http://jsfiddle.net/sambeckhamdesign/APLZ2/1/

尝试:

$('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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM