你可以在你的链中运行它:
// Anonymouse function passed into $ will be invoked
// When the document has loaded
$(function () {
// Immediately after binding the click handler
// We invoke the click event on #container
$("#container").on("click", contentEffects).click();
});
听起来您应该考虑的是event-delegation,并将事件绑定到页面加载时出现的最近的静态祖先元素。例如,假设我们有一个由 AJAX 动态填充的项目列表:
<ul id="items">
<li>First item on load.</li>
<!-- More items will be loaded
via AJAX later on --->
</ul>
您可能希望列表项在单击它们时执行某些操作,因此您可能会将处理程序绑定到它们的单击事件:
$("#items li").on("click", function () {
alert( $(this).html() );
});
这适用于页面上已经存在的任何列表项,但正如您所体验的那样,新项目不会与它们绑定,因此在您的 AJAX 之后,您将不得不将其重新绑定到所有新列表项。
我们可以不这样做,而是绑定到ul
始终存在的元素,并简单地监听源自li
元素的事件:
$("#items").on("click", "li", function () {
alert( $(this).html() );
});
现在我们的事件永远不需要重新绑定,因为#items
它是与页面一起加载的,并且永远不会去任何地方。任何从嵌套列表项冒泡到此元素的单击事件(无论它是否通过 AJAX 加载)都将被捕获和处理。