如果document.ready不起作用

时间:2014-03-06 14:54:32

标签: javascript jquery ajax drupal drupal-7

每个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);

或者更好地写一个回调?或者根本没有什么不同?

1 个答案:

答案 0 :(得分:2)

附上你的js行为:

Drupal.behaviors.nameOfYourModule= {
  attach: function (context, settings) {
    // your code here
  }
};

这样,您的代码将在包括AJAX请求在内的每个请求上执行。

了解更多信息see this blog post on the subject.