我只是在学习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”警报。然而,“点击”警报也会被触发,并且在按下按钮时不会随后触发。
答案 0 :(得分:7)
如果您希望在单击按钮时执行它,则需要将其包装在函数中:
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")});
}
};