我有一个php函数,它会返回一个技能栏对象的标签,将其呈现在屏幕上我试图传递一个函数来定义它的个人百分比,它应该在加载时,但由于某种原因,定义百分比的值是未定义的,当我在控制台调试它时,尽管它调用了这个函数很好:
rotating circle undefined%
这里是我在function .php文件中声明设置百分比的函数的地方(简化以显示问题所在,data-progress是它的起始值,它需要更改,因为它不是很可读):
function echo_skillbar($data_progress, $function){
echo " <div class='radial-progress' data-progress='$data_progress' onLoad = '$function'> "
}
我在主页中这样调用它:
<div class = "col-xs-3">
<?php echo_skillbar(0, 'rotate_circle(80)') ?>
<br><div class = ""><b><p>HTML</p></b></div>
</div>
这里是javascript函数,所以我改变data-progress属性从它的起点(0)到80(%),但这个值是未定义的,即使我传入和函数加载良好,没有意义:
function rotate_circle(value){
console.log("rotating circle " + value + "%");
$('head style[type="text/css"]').attr('type', 'text/less');
less.refreshStyles();
window.animate = function () {
$('.radial-progress').attr('data-progress', value);
}
setTimeout(window.animate, 2000);
$('.radial-progress').click(window.animate);
}
期待任何答案,因为我现在像一棵树一样被难住了
我不知道PHP如何对应DOM事件,但似乎onLoad
事件已经被触发时,你的echo_skillbar
回显
试试内联JS:
function echo_skillbar($data_progress, $function){
echo " <div class='radial-progress' data-progress='$data_progress'> ";
echo '<script>{$function}()<script>';
}
这样JS函数就会在<div>
加载时调用。你只需要改变JS函数的内部来获得正确的属性。