在每次加载中包含相同的 JS 文件有点多。head
我的建议是第一次将文件包含在 main中。然后将“委托”用于“动态”元素。
例如,假设我正在加载一个视图部分,它的链接按钮类似于最初加载的链接按钮。因此我希望他们保持相同的点击功能。而不是典型的分配,例如:
$("a.bob").click(function(e) { e.preventDefault(); alert($(this).prop("href")); });
我将使用“委托”。jQuery 为我们提供了一种简单的方法来执行此操作,它将相同的事件|方法分配给具有匹配选择器的所有项目(现在和未来[动态])。这样做的方法是:
$(document).on("click", "a.bob", function(e) {
e.preventDefault();
alert($(this).prop("href"));
});
前一个将告诉所有a
具有该类bob
的标签不要去任何地方并提醒我他们的链接。这与标签何时a
添加到 DOM 无关。
要记住的一件事.on
是 jQuery 版本 1.72 的新功能(我认为)。在此之前,您会使用.live
甚至.delegate
代替。
旁注
当然,委派只会处理“事件”。如果您需要将 JavaScript 用于“布局”移动之类的操作,那么您最好创建一个“回调”函数,以便在 ajax 请求成功时使用。同样,您可以将这些回调方法放在一个头文件中,但是您需要在 $.ajax[success 或 complete] 中根据需要“调用”它们。
请参阅http://api.jquery.com/jQuery.ajax/以了解有关 ajax 调用的基本回调的更多信息success
。此外,从 1.7 版开始,您可以根据需要维护要触发的列表或 jQuery 对象。要获取有关回调列表的更多信息,请参阅http://api.jquery.com/category/callbacks-object/complete
callbacks
如果这还不够信息,请发表评论,我会尽量让您有任何问题更清楚。