Javascript代码获胜';不起作用.它赢得了';t在重新加载时更新变量


Javascript code won't work. It won't update variables on reload

<div id="timelapse_speed_control">
    <?php
    $speed_var;
    $timeout_var;
    if ($this->uri->segment(4) == 1)
    {
        $speed_var = 200;
        $timeout_var = 200;
    }
    else if ($this->uri->segment(4) == 2)
    {
        $speed_var = 200;
        $timeout_var = 150;
    }
    else
    {
        $speed_var = 200;
        $timeout_var = 75;
    }
    ?>
    <script type="text/javascript">
        $(document).ready(
        function(){
            speed_var = <?php json_encode($speed_var); ?>;
            timeout_var = <?php json_encode($timeout_var); ?>;

            $('ul.<?php echo $uri_segment; ?>').innerfade({
                speed: speed_var,
                timeout: timeout_var,
                type: 'sequence',
                containerheight: '500px'
            });
        });
    </script>
</div>

上面的代码基本上是询问uri中的第4个段是什么,然后检查它,并相应地更改"延时"的速度和超时。但它不起作用。它在测试时会崩溃。

你知道这里面的bug吗?也许我做错了?

浏览器输出:

        $(document).ready(
        function(){
            speed_var = ;
            timeout_var = ;

            $('ul.jeromiedevera').innerfade({
                speed: speed_var,
                timeout: timeout_var,
                type: 'sequence',
                containerheight: '500px'
            });
        });
要修复此问题,请在json_encode:之前添加echo
    <script type="text/javascript">
        $(document).ready(
        function(){
            speed_var = <?php echo json_encode($speed_var); ?>;
            timeout_var = <?php echo json_encode($timeout_var); ?>;
            $('ul.<?php echo $uri_segment; ?>').innerfade({
                speed: speed_var,
                timeout: timeout_var,
                type: 'sequence',
                containerheight: '500px'
            });
        });
    </script>