手动调用jQuery document.ready函数
最简单的方法是使用共享功能:
$(document).ready(function() {
setup();
});
$.post('/', {}, function() {
setup();
}, 'json');
但是如果你用它来重新分配的听众,你可能将能够与他们分配到逃脱他们之前创建的,是这样的:
$(document).ready(function() {
$(document).delegate('.my-button', 'click', function() { });
});
使用此代码,所有.my-button
点击将您的自定义函数来处理,无论在在domready中的DOM是否存在按钮。
需要注意的是:
-
$(document).ready(function() { ... });
可最小化到$(function() { ... });
- 如果你正在使用jQuery 1.7+,喜欢
.on
超过.delegate
:$(document).on('click', .my-button', function() { });
- 体型较窄的范围内更广泛的上方,即
$('#close-parent').delegate
超过$(document).delegate
$(document).ready();
如果不行,试试这个:
function startup() {
// All your functions in here.
}
$(document).ready(startup);
而且你的AJAX请求完成后:
startup();
我认为这是你写的。我喜欢这个组合......只需要弄清楚你如何发送我的代表份额;) – musefan 2012-01-16 11:46:43
你需要将对'startup'的引用传递给'ready'。目前您正在传递'startup'的返回值。 – 2012-01-16 11:46:50
代替手工触发的document.ready的(这将是不好的做法恕我直言),做一个功能,这就是所谓setup
设置所有听众等,并调用此功能,当你需要重新申请的东西等
谢谢,当然,但我有几个js文件包含在那里和几个电话$(),所以它需要一段时间将它们分为启动功能... – idm 2012-01-16 11:50:28
我想到的是建立一个全球性的“设置函数数组“,您可以将每个函数添加到需要执行的函数中,在您的设置函数中,您只需遍历该数组并执行每个函数,这对您有用吗? – 2012-01-16 11:53:33
请考虑标记正确的答案。 – Jeffrey 2012-01-16 21:03:30