Drupal 7可折叠的字段集问题与ajax

时间:2013-09-07 01:13:05

标签: php ajax drupal drupal-7 drupal-modules

我通过ajax将数据发送到我的自定义模块中的PHP回调函数...一切都很好用。我遇到的问题是:我正在返回的html和在ajax完整功能中呈现的是由不会扩展/崩溃的字段集组成。我测试的东西: 1)。如果我将相同的html(字段集)渲染到同一模块中的一个自定义块中,它们工作得很好,崩溃和扩展。 2)。我已经尝试将其包含在回调函数中,

  drupal_add_js('misc/form.js');
  drupal_add_js('misc/collapse.js');

在fieldset渲染数组中,

return array(
    '#type' => 'fieldset',
    '#title' => t($title),
'#attributes' => array(
     'class' => $class,
),
'#attached' => array(
    'js' => array(
      'misc/form.js',
      'misc/collapse.js',
    ),
  ),
);

$class

变量包含折叠和可折叠。我也尝试过使用

#theme => 'fieldset'

而不是#type => 'fieldset'

javascript文件

misc/collapse.js
misc/form.js

已经包含在我的模块中的其他函数中。并且查看页面的来源,确实被包含在页面的头部。

这必须与通过ajax引入它们有关,我知道当你通过ajax将元素添加到文档中时,为了设置你必须使用的新元素的事件

$(document).on('event', 'class', function(){
  //code here
 });

我想知道这可能是字段集不会崩溃/扩展的原因。

1 个答案:

答案 0 :(得分:1)

如果你必须使用像这样的Drupal.behaviors用jQuery获取AJAX数据:

Drupal.behaviors.MYBEHAVIOR = {
  attach: function (context, settings) {
    $('MYELEMENT.MYBEHAVIOR', context).once('MYBEHAVIOR', function () {
      // Apply the MYBEHAVIOR effect to the elements only once.
    });
  }
};

请参阅js文档https://drupal.org/node/756722

中的详情