即使在点击事件中,javascript警告也会在文档就绪时触发

时间:2016-02-06 05:35:41

标签: javascript

我有一个简单的问题,下面的代码会在页面加载时触发警报,但警报是在点击事件中,所以我不知道原因。有什么想法吗?

<script>
$(document).ready(
    function () {
        var blah = document.getElementById('btnChangeScreenSize');
        var blah2 = $('#btnChangeScreenSize');

        $('#btnChangeScreenSize').click(alert(1));
    }
);
</script>

谢谢,

2 个答案:

答案 0 :(得分:1)

这样写:

$(document).ready(
    function () {
        var blah = document.getElementById('btnChangeScreenSize');
        var blah2 = $('#btnChangeScreenSize');

        $('#btnChangeScreenSize').click(function() { alert(1) });
    }
);

问题是,当你写:$('#btnChangeScreenSize').click(alert(1))时,函数alert()被调用并返回undefined。然后你将undefined设置为回调函数,这是没有意义的

答案 1 :(得分:1)

您有以下代码:

$('#btnChangeScreenSize').click(alert(1));

尝试将alert(1)设置为点击处理程序(请参阅the docs),但会立即评估alert(1)。相反,您需要一个回调函数,如下所示:

$('#btnChangeScreenSize').click(
    function () {
        alert(1)
    }
);