上部にアセットのテーブルを表示し、下部に時間セルを表示するスケジューリング アプリケーションがあります。時刻セルは、午前 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;
}
現在、時間がハードコードされていることはわかっています。これは、変数入力なしで機能させようとしていたためです。