在do_action中添加JS函数作为第三个参数

时间:2013-01-10 作者:Emerson Maningo

我将这个JS函数命名为“myjsfunction()”。

function myjsfunction() {

jQuery(\'#html_admin_show\').hide();
jQuery(\'#html_admin_edit\').show();

}
一个限制是,我无法编辑原始的JS函数,比如放置一些PHP标记等。

如何在Wordpress do\\u操作挂钩中调用此JS函数?

我更愿意将其添加为第三个参数,因为我已经在使用第二个参数,所以类似于:

do_action(\'myhelp\', \'mysecondfunction\', \'myjsfunction\');
但当页面运行时,它不会显示元素#html\\u admin\\u edit。你知道如何调用这个函数吗?

谢谢

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

首先,回调必须是PHP:

function myjsfunction_callback() {
?>
<script>myjsfunction();</script>
<?php
}
其次,您可以向一个操作添加多个回调:

add_action( \'myhelp\', \'myjsfunction_callback\' );
add_action( \'myhelp\', \'mysecondfunction\' );
现在,你可以打电话do_action() 没有参数…

do_action( \'myhelp\' );
…将执行两个回调。

我回复您的评论:您可以只使用一次回调:

do_action( \'myhelp\', \'mysecondfunction\', \'myjsfunction_callback\' );
然后,您必须使用相当抽象的回调,并接受更多参数:

add_action( \'myhelp\', \'multicall\', 10, 99 );

function multicall()
{
    $functions = func_get_args();

    foreach ( $functions as $function )
    {
        if ( function_exists( $function ) )
            $function();
    }
}
现在您可以传递多达99个函数名,所有这些函数名都将针对该操作执行。

结束

相关推荐