在页面加载而不是事件上触发Javascript(Bug)

时间:2012-03-02 15:24:01

标签: javascript jquery javascript-events

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

我可能在这里错过了一些非常简单的东西,但我整天都在看它,我需要一些外界的帮助。

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

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

3 个答案:

答案 0 :(得分:1)

尝试:

$('a').click(function(){
    alert('hello');
}, imageResizer());​

答案 1 :(得分:0)

您正在运行该函数并将其输出作为参数发送到jQuery thingy:

$('a').click(alert('hello'), imageResizer());

相反,试试这个:

$('a').click(function() {alert('hello');  imageResizer(); });

这提供了一个anonyomous函数,它将在单击项目时运行,调用imageResizer(),而你拥有它的方式,它运行imageResizer()函数并将它的返回值放入onclick处理程序。它之后无法工作的原因是因为它会将imageResizer()函数的返回值视为它试图运行的代码。

答案 2 :(得分:0)

您正在触发事件而不是为其分配处理程序

$('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();
});​