1

ページに 2 つの Jquery timePicker があります。timePicker プラグインはhttp://labs.perifer.se/timedatepicker/から

ビューには、次の 2 つのタイム ピッカー コントロールがあります。

$("#time1, #time2").timePicker({
        startTime: "09.00", 
        endTime: new Date(0, 0, 0, 19, 0, 0), 
        show24Hours: false,
        separator: '.',
        step: 60
});

「#time1」は、「イベントの開始」時刻を取ります。#time2 は「イベントの終了」時間を取ります。以前に選択したすべての「time1」のリストを取得するために実行される MVC 、jquery、js コードがあります。以前に「選択して保存した」値を #time1 に隠しています。たとえば、ユーザーが以前に午前 9 時、午前 10 時、午前 11 時に保存したとします。これらの値をデータベースから (リスト "listTimes" に) 取得し、それらの値を #time1 コントロールに隠して表示されないようにしています。

  $(listTimes).each(function () {

   $('.time-picker:first').find('li:contains("' + this + '")').hide();    
                         });

しかし、ユーザーが time1 で午前 9 時、time2 で午後 2 時を選択した場合、それは 5 時間のブロックになります。午前 9 時だけでなく、午後 10 時、11 時、12 時、午後 1 時も 5 時間枠なので、非表示にする必要があります。今まで午前9時しか隠せませんでした。残りの時間も非表示にするための助けが必要です。リスト「listTimes」に期間中のすべての時間 (time2-time1) を入力する必要があります。

4

1 に答える 1

1

これらの行に沿った何かがうまくいくはずです:

var startTime = "09:00";
var endTime = "11:30";
var $startTime = $('.time-picker:first').find('li:contains("' + startTime + '")');
var $currentTime = $startTime.next('li');

$startTime.hide();

while($currentTime.html() != endTime) ​{
    $currentTime.hide();
    $currentTime = $currentTime.next('li');
}​

ライブデモ

于 2012-05-31T12:25:24.963 に答える