我有一个我正在创建的自定义模块称为接触点。在touchpoints.module文件的顶部,我有以下内容:
global $base_path;
$my_settings = array(
'basepath' => $base_path,
'module_path' => drupal_get_path('module','touchpoints')
);
drupal_add_js(array('touchpoints' => $my_settings), 'setting');
drupal_add_js(drupal_get_path('module','touchpoints') . '/touchpoints.js');
然后在我的touchpoints.js文件中,我有以下内容:
Drupal.behaviors.touchpoints = function(context){
$('.form-item-touchpointlocation').css('display','block');
$('.form-item-touchpointcategory').css('display','none');
}
我的理解是,当DOM完成类似于$(document).ready调用的加载时,Drupal.behaviors调用内的任何内容都应该运行。但是,此代码未被执行。只是为了确保我在函数中也发出警报,并且它没有被触发。我缺少一步吗?
答案 0 :(得分:1)
我意识到我正在使用Drupal 6语法。在Drupal 7中,你必须以不同的方式声明行为。应该看起来像这样
(function ($) {
Drupal.behaviors.touchpoints = {
attach: function (context, settings) {
$('.form-item-touchpointlocation').css('display','block');
$('.form-item-touchpointcategory').css('display','none');
}
};
})(jQuery);