我正试图在另一个之前渲染一个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标记的深处,并且与我所做的简单版本相比,有几个类应用于它们。这可能是原因吗?我不够具体吗?
答案 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。