为什么在点击按钮之前运行jQuery("点击","按钮",...)?

时间:2015-04-13 16:06:34

标签: javascript jquery onclick

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

HTML:

<div id="tour" data-location="london">
    <button>Get Photos</button>
    <ul class="photos"></ul>
</div>

和 jquery的:

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

正如我所料,加载dom后出现“hello”警报。然而,“点击”警报也会被触发,并且在按下按钮时不会随后触发。

http://jsfiddle.net/abalter/295sgf5c/2/

2 个答案:

答案 0 :(得分:7)

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

Updated Example

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

答案 1 :(得分:5)

请参阅this fiddle

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

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