Показать сообщение отдельно
  #16 (permalink)  
Старый 18.07.2014, 16:40
Аспирант
Отправить личное сообщение для kingstakh Посмотреть профиль Найти все сообщения от kingstakh
 
Регистрация: 21.02.2014
Сообщений: 37

Нужна помощь в доведении скрипта размещенного выше.
Пишу на jquery mobile расписание автобусов. Хотелось бы использовать вышеописанный скрипт для подсчета времени до прибытия автобуса. Отсюда и вопрос, данный пример работает с определенным массивом, указанным в скрипте, но верстка с query mobile подразумевает один большой код с разбивкой на страницы. Вставлять этот код на каждую страницу со своим массивом глупо и не оправдано. Может подскажете как использовать это скрипт один раз для всех страниц, с подгрузкой нужной строки (расписание автобуса на конкретной остановке) из файла данных в массив и вызов функции подсчета с конкретным массивом уже непосредственно в коде страницы?

<!doctype html>
<html>
<head>
    <title>My Page</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css">
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>  
	<script>
var timeBuss = ['9:30','10:30','11:40','11:45','11:50','12:30','13:20','14:06','14:56','15:06','15:36','16:16','16:43','17:06','17:23','17:34','17:52','18:04','18:10','19:06','19:36','20:06','20:35','21:08','21:31','22:08','22:26','22:53','23:26','23:59','00:06']
setInterval(currentTimeForBuss, 60);
function currentTimeForBuss() {
    var date = new Date()//Получили текущую дату
    var time = {
        hours: date.getHours(),
        minutes: date.getMinutes(),
		seconds: date.getSeconds()
    }//получили часы и минуты
	document.getElementById("current_time").innerHTML = ('Текущее время: ' +  (time.hours + ':' + time.minutes + ':' + time.seconds));

    for (var i = 0; i < timeBuss.length-1; i++) {//Цикл по массиву с расписанием
        var tmp = timeBuss[i].split(':');//разбили время расписания на часы и минуты
        var bussTime = {
            hours: tmp[0], minutes: tmp[1]
        }
        tmp = timeBuss[i + 1].split(':');
        var nextBussTime = {
            hours: tmp[0], minutes: tmp[1]
        }
        
        if ((time.hours >= bussTime.hours && time.hours <= nextBussTime.hours)) {
            var timeLeft = bussTime;
        }
    }
		document.getElementById("nextbusleft").innerHTML = ("Осталось минут: " + (timeLeft.minutes - time.minutes))
};
currentTimeForBuss();
</script>
</head>
<body>
    <div data-role="page">

        <div data-role="content">
        <ul data-role="listview">
    <li><a href="#second_page">Маршрут №1</a></li>
</ul>
        </div><!-- /content -->

 
    </div><!-- /page -->
        <div data-role="page" id="second_page">
 

        <div data-role="content">
        <ul data-role="listview">
    <li><a href="#busstop_1_1">Конечная 1 — Конечная 2</a></li>
    <li><a href="#busstop_1_2">Конечная 2 — Конечная 1</a></li>
</ul>
        </div><!-- /content -->

    </div><!-- /page -->
            <div data-role="page" id="busstop_1_1">
        <div data-role="content">
        <ul data-role="listview">
    <li><a href="#schedule_1_1">Остановка 1</a></li>
    <li><a href="#schedule_1_2">Остановка 2</a></li>    
</ul>
        </div><!-- /content -->

 
    </div><!-- /page -->
<div data-role="page" id="schedule_1_1">
        <div data-role="content">
			<div id="schedule">'9:30','10:30','11:40','11:45','11:50','12:30','13:20','14:06','14:56','15:06','15:06','16:06','16:06','17:06','23:59','00:06'</div>
            <div id="current_time"></div>
            <div id="nextbusleft"></div>
        </div><!-- /content -->
    </div><!-- /page -->

</div>

</body>
</html>

Последний раз редактировалось kingstakh, 18.07.2014 в 17:34.
Ответить с цитированием