0

我的页面上有一些 html,在我的脑海中我有$("#someelement").click(alert("click"));. #someelement 是否存在,当我出于某种原因加载页面时,警报会消失。但是,当我有$("#someelement").click(function(){alert("click")});. 这是为什么?

4

2 回答 2

2

alert("foo")总是会立即提醒 foo,它不会返回可以作为事件处理程序传递的函数。您需要将一个函数传递给 jQuery 事件绑定方法。

$("#someelement").click(function(){
    alert("click");
});

此外,如果此代码在 中<head></head>,则需要将其包装在$(document).ready().

$(document).ready(function(){
    $("#someelement").click(function(){
        alert("click");
    });
});

alert是在window对象上定义的方法,例如window.alert. 它需要一个字符串参数,并且它必须是窗口对象的成员。放置("string")在 之后alert,例如alert("string")将执行该功能,导致弹出窗口带有"string"。当您将alert("string")作为参数放置到函数时会发生同样的事情,当所述代码运行时会发生弹出窗口。

于 2013-01-10T20:13:15.353 回答
0

试试这个:

$(document).ready(function() {
  $("#someelement").click(function(){alert("click")});
});

这是一个工作小提琴

于 2013-01-10T20:15:43.947 回答