WordPress:挂钩鼠标事件?

时间:2015-03-17 10:57:38

标签: wordpress wordpress-plugin

我已经花了几个小时,但我没有到达任何地方。我刚开始使用Wordpress,我想要一个简单的页面,我点击某个东西(列表项),文本描述出现在同一页面上其他地方的div中。

如果我编写简单的HTML和JS,这将是微不足道的,但我无法理解如何将其集成到WordPress中。据我所知,我必须编写一个插件,但我找不到钩子API中鼠标事件的任何处理程序。或者我应该将onclick硬编码到HTML中,并找到一些地方放置一些JavaScript代码来处理它?任何建议赞赏...

3 个答案:

答案 0 :(得分:1)

Wordpress没有鼠标事件/钩子。 Wordpress钩子只适用于后端,它们是一种与用WP编写的WP核心交互的方式(在服务器而不是客户端上执行)。

鼠标事件发生在客户端,因此要实现您的目标,您应该通过wp_register_scripthttp://codex.wordpress.org/Function_Reference/wp_register_script)在wordpress中注册Javascript文件,并在那里添加您的Javascript行为。

您不必编写插件,只需在您的functions.php中添加wp_register_script逻辑。

答案 1 :(得分:0)

Vlad Cazacu是对的,我们没有任何关于javascript事件的钩子,我不确定除了node.js之外是否还有其他服务器端语言的选项。无论如何,您可以以正常方式使用jquery注册和排队文件。但是如果你想拥有高级交互性,那么wordpress中的函数可以做到这一点,例如这个函数wp_localize_script,它与ajax一起使用来抓取数据作为javascript数组/对象,然后将其转换为php数组/对象,然后可以在wordpress / php中使用。

答案 2 :(得分:0)

简而言之 -

  1. 将id(和样式类)添加到您想要处理程序的任何内容中 在HTML

  2. 在JS中注册处理程序,如下所示:

  3. function fp_onload_js() {     
      var id = document.getElementById('myID'); 
      id.addEventListener(
        "click",
        function() { myEventListener(); }, 
        false);
    }
    
    1. functions.php
    2. 中注册/排队包含JS的文件
      add_action('wp_enqueue_scripts', 'theme_enqueue_stuff');
      function theme_enqueue_stuff() {    
        ...
        wp_enqueue_script(
          'myHandle',
          get_template_directory_uri() . '/path_to_my_js_file.js'); 
      }
      
      1. 棘手的一点:在创建ID之后,您必须确保在WordPress构建DOM之后运行事件侦听器代码。您需要在页面加载后运行JS(请参阅here)。基本上,也在functions.php
      2. add_action('wp_footer', 'fp_onload_php');
        function fp_onload_php() {
           ?>
           <script type="text/javascript">
               fp_onload_js();
           </script>
           <?php
        }
        

        并确保您不使用WordPress编辑器中的“可视”标签 - 它会弄乱您精心设计的HTML。