Javascript Drupal7和内联Jquery
我正在尝试将内联jQuery添加到Drupal中的一篇文章中。我正在使用以下代码:Javascript Drupal7和内联Jquery,javascript,jquery,drupal,drupal-7,Javascript,Jquery,Drupal,Drupal 7,我正在尝试将内联jQuery添加到Drupal中的一篇文章中。我正在使用以下代码: <?php // add inline javascript drupal_add_js(' $(document).ready(function() { $("input[type='submit']").click(function(){ alert("test"); }); }); ', 'inline'); ?> 您可以通过以下方式将内联javascript/
<?php
// add inline javascript
drupal_add_js('
$(document).ready(function() {
$("input[type='submit']").click(function(){
alert("test");
});
});
', 'inline');
?>
您可以通过以下方式将内联javascript/jQuery代码添加到静态内容中。。。
当您准备创建静态页面时(内容管理->创建内容->页面)
选择输入格式为PHP代码
在页面主体中,使用drupal_add_js('your js code here','inline')将PHP代码与内联js/jQuery代码粘贴在一起代码>
示例:(这将粘贴在页面主体中)
drupal_add_js(),如drupal API中所述,可用于向代码中添加javascript文件或添加内联javascript/jQuery。虽然您可以创建一个js文件,但这只是为了您的利益——将jQuery保存在一个文件中,而不是与模块的代码混合在一起(这可能会更混乱)
为了测试javascript是否正常工作,我会做一些类似于Ayyappan建议的事情:
drupal_add_js($(document).ready(function() {
alert("Hello!");
});
这可以添加到模块中的任何页面中,并应在该页面打开后立即弹出。如果不起作用,可能尝试清除缓存
就您实际想要运行的代码而言,当您单击submit按钮(?)时,似乎您正试图显示一个警报框。提交按钮通常是表单的一部分,为了让jQuery在drupal表单中工作,您必须使用以下命令将jQuery直接附加到表单:
$form['#attached']['js'] =
您必须研究如何将内联javascript添加到表单中。您可以只使用drupal_add_js(),也可以使用其他工具。您完全可以使用drupal\u add\u js()以这种方式将js文件附加到表单。看起来是这样的:
$form['#attached']['js'] = array(drupal_get_path('module', 'my_module') . '/my_module.js');
最好在函数中执行此操作。对于自定义mymodule,它可能如下所示:
function mymodule_preprocess_page(&$vars, $hook) {
if('checkout' === arg(0)) {
// Add a JS as a file.
drupal_add_js(path_to_theme().'/js/jquery.mask.min.js');
// Add a JS as an inline code.
drupal_add_js('jQuery(document).ready(function() { jQuery("#edit-customer-profile-shipping-field-phone-und-0-value").mask("0 (000) 000-0000", {placeholder: "\8 (___)___-____"});
})', 'inline');
}
$vars['scripts'] = drupal_get_js();
}
请注意drupal_add_js()函数的“inline”选项
function mymodule_preprocess_page(&$vars, $hook) {
if('checkout' === arg(0)) {
// Add a JS as a file.
drupal_add_js(path_to_theme().'/js/jquery.mask.min.js');
// Add a JS as an inline code.
drupal_add_js('jQuery(document).ready(function() { jQuery("#edit-customer-profile-shipping-field-phone-und-0-value").mask("0 (000) 000-0000", {placeholder: "\8 (___)___-____"});
})', 'inline');
}
$vars['scripts'] = drupal_get_js();
}