javascript - 如果 document.ready 不起作用怎么办

标签 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);

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

最佳答案

附加你的 js 行为,如下所示:

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

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

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

关于javascript - 如果 document.ready 不起作用怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22228023/

相关文章:

javascript - 在 sammy.js 中注册多个路由

javascript - 如果 jquery 饼图中的数据为零,则隐藏图例标签

.net - Ajax 调用超出可接受的 URI 长度

javascript - 使用 .delegate 使用 mouseenter 或 mouseover 为图像 sibling 设置动画?

javascript - 如何避免 Jquery 在巨大的 ajax 页面上解析/清理?

javascript - ajax 形式和部分

javascript - 如何使我的用户响应不区分大小写?

javascript - 向数组添加通用对象和格式

javascript - 当我在 eclipse 浏览器中运行 url 时,HTML 表单未被验证它不起作用

javascript - 每次编辑器加载时都关注文本字段