【问题标题】:Drupal 7 collapsible fieldset issues with ajaxajax 的 Drupal 7 可折叠字段集问题
【发布时间】:2013-09-07 01:13:04
【问题描述】:

我正在通过 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
 });

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

【问题讨论】:

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


    【解决方案1】:

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

    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中查看更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多