0

上部にアセットのテーブルを表示し、下部に時間セルを表示するスケジューリング アプリケーションがあります。時刻セルは、午前 0 時から午後 11 時 45 分まで 15 分ずつ増加します。ページが読み込まれるか更新されると、画面が現在の時間セルにフォーカスするようにします。私は自分のコードに近いと思いますが、なぜ機能しないのかわかりません。私が使用しているjqueryは次のとおりです。

$(document).ready(function()
{
    var now = new Date();
    now = formatTimes(now);
    alert ("Looking for " + now);
    $('.timeColumnOdd[innerHTML="4:15 pm"]').focus();


    var thisScript = '';
    var roleID = document.getElementById('roleID').value;
    if (roleID == 5)
    {
        thisScript = '../js/tentativeSchedule.js';
    }
    else
    {
        thisScript = 'schedule.js';
    }
    var script   = document.createElement("script");
    script.type  = "text/javascript";
    script.src   = thisScript;
    document.getElementsByTagName('body')[0].appendChild(script);
});    
    function formatTimes(tm)
    {
        var hour = tm.getHours();
        var minutes = tm.getMinutes();

        if(minutes < 15 && minutes > 00){minutes = 15;}
        if(minutes < 30 && minutes > 15){minutes = 30;}
        if(minutes > 30 && minutes < 45){minutes = 45;} 
        if(minutes > 45 && minutes <= 59){minutes = 0, hour = tm.getHours()+1}

        if(minutes<1){minutes='0'+minutes}

        var timePiece = null;
        if (hour >= 12)
        {
            hour = hour - 12;
            if (hour == 00)
            {
                hour = hour + 1;
            }
            if (hour < 10)
            {
                var timePiece = hour + ":" +  minutes + ' pm';
            }
            else
            var timePiece = hour + ":" + minutes + ' pm';
        }
        else
        {
            var timePiece = hour + ":" +  minutes + ' am';
        }       
        return timePiece;
    }

そして、時間列を作成する php の部分は次のとおりです。

    $table->setCellAttributes(0, 0, 'class="timeColumn"');
    $table->setHeaderContents(0,0, 'Time');
    $now = new DateTime($pickedDate);
    $now = date_format($now,'U');
    $offset = ($now % 900);
    $now = $now-$offset;

    for ($i = 1;$i < 97; $i++)
    {
        $table->setCellAttributes($i,0,'class="timeColumnEven"');
        $table->setHeaderContents($i++,0, date('g:i a',$now));
        $now += 900;
        for ($x = 0; $x<2;$x++)
        {
        $table->setCellAttributes($i,0,'class="timeColumnOdd"');
        $table->setHeaderContents($i++,0, date('g:i a',$now));
        $now += 900;
        }
        $table->setCellAttributes($i,0,'class="timeColumnOdd"');
        $table->setHeaderContents($i,0, date('g:i a',$now));
        $now += 900;

    }

現在、時間がハードコードされていることはわかっています。これは、変数入力なしで機能させようとしていたためです。

4

1 に答える 1