1

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

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

在字段集渲染数组内,

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
 });

我想知道这是否可能是字段集不会折叠/展开的原因。

4

1 回答 1

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

于 2013-09-08T14:51:35.743 回答