在PHP脚本中调用的JavaScript函数太早

时间:2011-11-16 作者:Laxmidi

我正在开发一个谷歌地图插件。

我的问题是初始化映射的函数,csf_map_maker_js(), 在定义div之前,调用得太早(至少我认为这是问题所在)。

在PHP中,我有:

$csf_map_output .= \'<div id="csf_map_canvas" style="width:\'. $atts[\'width\'].\'px; height: \'. $atts[\'height\'] .\'px;"></div>\'; 

$csf_map_output .= \'<script>var csf_map_params = \' .  json_encode( $atts ) .  \'; csf_map_maker_js( csf_map_params );</script>\';  

return $csf_map_output;
我不认为csf_map_canvas 调用函数时,div已就绪。

在javascript脚本中csf_map_maker_js() 函数在外部定义jQuery(document).ready(function() {}); . 如果我把它搬进去csf_map_canvas div在调用函数时准备就绪。?如果是这样,如何更改PHP脚本中的函数调用,以便在匿名函数中调用函数?我如何避开范围问题?

还有别的办法吗?

1 个回复
SO网友:Ijaas

如果你认为这是问题所在,那么简单地做:

$csf_map_output .= \'<script>
jQuery(document).ready(function(){
    var csf_map_params = \' .  json_encode( $atts ) .  \';
    csf_map_maker_js( csf_map_params );
});
</script>\';
我认为上述代码没有任何范围问题。

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s