Drupal 6 到 7:添加 jquery 函数到表单
Drupal 6 to 7: add jquery function to form
我需要将代码从 Drupal 6 转换为 Drupal 7,但卡在了 jquery 的部分。在Drupal 6中,添加jquery的代码如下,其中simpleColor
是jquery.simple-color.min.js
中的一个函数:
drupal_add_js(drupal_get_path('module', 'module_name') . '/js/jquery.simple-color.min.js', 'module', 'header', FALSE, FALSE, FALSE);
$jquery = '
$(document).ready(function() {
$(".simple_color").simpleColor({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c",
});
});';
drupal_add_js($jquery, 'inline');
已将 simple_color 添加到表格中:
$form['feeds']["feed_$fid"]['color'] = array(
'#title' => t('Color'),
'#type' => 'textfield',
'#size' => 10,
'#attributes' => array(
'class' => 'simple_color',
),
);
我曾尝试将上述代码转换为 Drupal 7 但未成功:
drupal_add_js(drupal_get_path('module', 'module_name').'/js/jquery.simple-color.min.js', array('type'=>'module', 'scope'=>'header', 'defer'=>FALSE, 'cache'=>FALSE, 'preprocess'=>FALSE));
$jquery = '
jQuery(document).ready(function() {
$(".simple_color").simpleColor = {
attach: function({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c"
})
};
});';
drupal_add_js($jquery, array('type'=>'inline'));
形式:
$form['feeds']["feed_$fid"]['color'] = array(
'#title' => t('Color'),
'#type' => 'textfield',
'#size' => 10,
'#attributes' => array(
'class' => array('simple_color'),
),
);
我尝试了很多方法,但都不适用于这种情况。请花点时间看看并尝试帮助我。先谢谢了。
应用 2pha 的建议,我已成功将 jquery 代码添加到 drupal。以下是 drupal 7 中的修复:
drupal_add_js(drupal_get_path('module', 'module-name') . '/js/jquery.simple-color.min.js','file');
$jquery = '
(function($) {
Drupal.behaviors.myBehavior = {
attach: function (context, settings) {
$(document).ready(function() {
$(".simple_color").simpleColor({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c",
});
});
}
};
})(jQuery);';
我需要将代码从 Drupal 6 转换为 Drupal 7,但卡在了 jquery 的部分。在Drupal 6中,添加jquery的代码如下,其中simpleColor
是jquery.simple-color.min.js
中的一个函数:
drupal_add_js(drupal_get_path('module', 'module_name') . '/js/jquery.simple-color.min.js', 'module', 'header', FALSE, FALSE, FALSE);
$jquery = '
$(document).ready(function() {
$(".simple_color").simpleColor({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c",
});
});';
drupal_add_js($jquery, 'inline');
已将 simple_color 添加到表格中:
$form['feeds']["feed_$fid"]['color'] = array(
'#title' => t('Color'),
'#type' => 'textfield',
'#size' => 10,
'#attributes' => array(
'class' => 'simple_color',
),
);
我曾尝试将上述代码转换为 Drupal 7 但未成功:
drupal_add_js(drupal_get_path('module', 'module_name').'/js/jquery.simple-color.min.js', array('type'=>'module', 'scope'=>'header', 'defer'=>FALSE, 'cache'=>FALSE, 'preprocess'=>FALSE));
$jquery = '
jQuery(document).ready(function() {
$(".simple_color").simpleColor = {
attach: function({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c"
})
};
});';
drupal_add_js($jquery, array('type'=>'inline'));
形式:
$form['feeds']["feed_$fid"]['color'] = array(
'#title' => t('Color'),
'#type' => 'textfield',
'#size' => 10,
'#attributes' => array(
'class' => array('simple_color'),
),
);
我尝试了很多方法,但都不适用于这种情况。请花点时间看看并尝试帮助我。先谢谢了。
应用 2pha 的建议,我已成功将 jquery 代码添加到 drupal。以下是 drupal 7 中的修复:
drupal_add_js(drupal_get_path('module', 'module-name') . '/js/jquery.simple-color.min.js','file');
$jquery = '
(function($) {
Drupal.behaviors.myBehavior = {
attach: function (context, settings) {
$(document).ready(function() {
$(".simple_color").simpleColor({
displayColorCode: true,
boxWidth: "6em",
defaultColor: "#36c",
});
});
}
};
})(jQuery);';