Javascript Drupal7和内联Jquery

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/

我正在尝试将内联jQuery添加到Drupal中的一篇文章中。我正在使用以下代码:

<?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();
    }