某些js文件在Drupal中不起作用

时间:2012-08-29 14:22:43

标签: javascript drupal

我正试图在另一个之前渲染一个div。

我已经在我的本地机器上测试了js,以确保它通过创建一个简单的页面来工作。代码如下:

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
    <div id="QWERTY">
        <div class="content">   
            <div class="field-name-field-image-one">IMAGE</div>
            <div class="body">BODY</div>
        </div>
    </div>       
<script>$('.content .body').insertBefore('.content .field-name-field-image-one'); // check before() examples</script>

</body>
</html>

我已将以下代码添加到Drupal网站上的js文件中:

(function ($, Drupal, window, document, undefined) {

    $('.content .body').insertBefore('.content .field-name-field-image-one'); // check before() examples

})(jQuery, Drupal, this, this.document);

我的.info文件链接到js并且正在加载。其他需要javascript的元素也在运行。我甚至尝试在html.tpl文件中添加脚本,但这也不起作用。

我试图影响的div嵌套在html标记的深处,并且与我所做的简单版本相比,有几个类应用于它们。这可能是原因吗?我不够具体吗?

2 个答案:

答案 0 :(得分:0)

感谢您的帮助,我已将其更新为以下内容,并且有效:

(function ($, Drupal, window, document, undefined) {
  $(function() {
    $('.content .body').insertBefore('.content .field-name-field-image-one'); // check before() examples
  });

})(jQuery, Drupal, this, this.document);

答案 1 :(得分:0)

您无需使用Javascript来更改内容类型中字段的顺序。

如果您使用的是Drupal 7,请转到主页»管理»结构(/ admin / structure / types),然后单击要更改的内容类型旁边的“管理显示”。您现在可以拖放字段以更改每种视图模式的显示顺序(例如,默认,预告片)。

如果您真的想使用Javascript来执行此操作,Drupal 7将使用特殊语法。

(function ($) {
  Drupal.behaviors.custom_moveimage = {
    attach: function (context, settings) {
      $('.content .body').insertBefore('.content .field-name-field-image-one');
    }
  };
}(jQuery));

Drupal文档有关于此的more information