在drupal中,我生成了一个列表,其中每个项目都是可折叠的字段集,可以包含额外的信息。
由于列表相当大,我希望避免在用户点击字段集之前加载额外的信息。
最佳案例:
编辑:
这是我当前代码的一部分:
$form[$service["name"]] = array(
'#type' => 'fieldset',
'#title' => t($titleBuilder),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#tree' => TRUE,
);
我认为你应该能够添加这一行:
'#onclick' => "testCapa()",
但这不起作用,浏览器加载空白页。
EDIT2: 试过这个:
'#attributes' => array("onclick" => "testCapa()"),
而不是加载空白页面,我的块现在已加载。但是当我点击字段集时,不会调用testCapa()。
答案 0 :(得分:0)
试试这段代码:
'#attributes' => array("onclick" => "testCapa()"),
答案 1 :(得分:0)
我正在回答这个问题,所以我有自己的参考(因为我失去了一些美好的时光)。 #attributes中的单击不起作用,因为Drupal的collapse.js更改了DOM,用户实际点击了字段集图例中的A标记(而不是字段集本身)。
对于Drupal 6,我实现它的方式是这样的:
Drupal.toggleFieldsetOriginal = Drupal.toggleFieldset
Drupal.toggleFieldset = function(fieldset) {
$(fieldset).trigger("beforeCollapse")
Drupal.toggleFieldsetOriginal(fieldset)
}
$(function() {
$("fieldset.collapsible").bind("beforeCollapse", function(e) {
if ($(this).hasClass("collapsed"))
alert("Fieldset is closed and will be open")
else
alert("Fieldset is open and will be closed")
})
})