我已经花了几个小时,但我没有到达任何地方。我刚开始使用Wordpress,我想要一个简单的页面,我点击某个东西(列表项),文本描述出现在同一页面上其他地方的div中。
如果我编写简单的HTML和JS,这将是微不足道的,但我无法理解如何将其集成到WordPress中。据我所知,我必须编写一个插件,但我找不到钩子API中鼠标事件的任何处理程序。或者我应该将onclick
硬编码到HTML中,并找到一些地方放置一些JavaScript代码来处理它?任何建议赞赏...
答案 0 :(得分:1)
Wordpress没有鼠标事件/钩子。 Wordpress钩子只适用于后端,它们是一种与用WP编写的WP核心交互的方式(在服务器而不是客户端上执行)。
鼠标事件发生在客户端,因此要实现您的目标,您应该通过wp_register_script
(http://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)
简而言之 -
将id(和样式类)添加到您想要处理程序的任何内容中 在HTML
在JS中注册处理程序,如下所示:
function fp_onload_js() { var id = document.getElementById('myID'); id.addEventListener( "click", function() { myEventListener(); }, false); }
functions.php
: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'); }
functions.php
:add_action('wp_footer', 'fp_onload_php'); function fp_onload_php() { ?> <script type="text/javascript"> fp_onload_js(); </script> <?php }
并确保您不使用WordPress编辑器中的“可视”标签 - 它会弄乱您精心设计的HTML。