Javascript 为什么在单击按钮之前,jQuery会运行(“单击”、“按钮”、…)?

Javascript 为什么在单击按钮之前,jQuery会运行(“单击”、“按钮”、…)?,javascript,jquery,onclick,Javascript,Jquery,Onclick,我只是在学习jquery,我遇到了我不理解的行为。我有: html: 正如我所预料的,在加载dom之后会出现hello警报。但是,单击的警报也会触发,按下按钮后不会触发 看 您的回调需要是一个函数,如下所示: var tour = { init: function () { $("#tour").on("click", "button", function(e){alert("clicked")}); } }; 如果希望在单击按钮时执行,则需要将其包装到函数中:

我只是在学习jquery,我遇到了我不理解的行为。我有:

html:

正如我所预料的,在加载dom之后会出现hello警报。但是,单击的警报也会触发,按下按钮后不会触发

您的回调需要是一个函数,如下所示:

var tour = {
    init: function () {
        $("#tour").on("click", "button", function(e){alert("clicked")});
    }
};

如果希望在单击按钮时执行,则需要将其包装到函数中:


您需要将警报包装在匿名处理程序中。这就是事件处理的工作原理。当前init call会触发警报。alertclicked作为方法参数传递-因此对其进行计算。
var tour = {
    init: function () {
        $("#tour").on("click", "button", alert("clicked"));
    }
};
$(document).ready(function () {
    alert("hello");
    tour.init();
});
var tour = {
    init: function () {
        $("#tour").on("click", "button", function(e){alert("clicked")});
    }
};
var tour = {
    init: function () {
        $("#tour").on("click", "button", function () {
            alert("clicked")
        });
    }
};