每个JavaScript开发人员迟早都会遇到document.onready事件中页面元素不可用的情况。这是因为onready很快就被解雇了,特别是当大多数页面部分动态加载时(使用AJAX)。我现在和Drupal 7合作。 Drupal不提供Ajax回调,似乎你需要编写自定义回调。
我的问题是:对于那种情况,最合适的解决方案是什么?
通常我会申请
jQuery(document).ready(function(){
setTimeout(function tmr(){
//Wait for any or task specific element will be available
if (jQuery('.bxslider').length) {
//Code here
do_code();
} else
setTimeout(tmr, 1000);
}, 10);
或者更好地写一个回调?或者根本没有什么不同?
答案 0 :(得分:2)
附上你的js行为:
Drupal.behaviors.nameOfYourModule= {
attach: function (context, settings) {
// your code here
}
};
这样,您的代码将在包括AJAX请求在内的每个请求上执行。