JavaScript .click()无意中自动启动

时间:2013-05-16 03:08:56

标签: javascript

我创建了一个自定义变量/函数,我在单击某个元素时尝试执行该函数。出于某种原因,它决定显示onload并忽略.click()。我花了一段时间试图解决这个问题,但我没有太多运气。

这是我的自定义功能:

var movebox = function (entry) {
    $imagebox.css('left' , '0');
    $('#wr').append(entry);
};

我试图像这样调用它,但是当页面加载时它会调用它。

$l3.click(movebox('test'));

2 个答案:

答案 0 :(得分:4)

您正在立即调用movebox函数,而不是将该函数作为对click事件处理程序的引用传递。这是JavaScript中的常见错误。相反,将函数传递给匿名函数,如下所示:

$l3.click(function() { 
    movebox('test');
});

另外,使用setTimeout,setInterval,addEventListener和臭名昭着的eval经常犯同样的错误。请记住,在将函数视为另一个函数的参数时,请确保将它们包装在匿名函数中。

答案 1 :(得分:0)

您正在调用movebox,然后将返回的值传递给click事件处理程序,在这种情况下,您可以使用.on()事件注册帮助程序将data元素传递给事件处理程序可以使用事件对象访问。

尝试

 var movebox = function (e) {
    $imagebox.css('left' , '0');
    $('#wr').append(e.data.entry);
    };

$l3.on('click',{ entry: 'test'}, movebox);