Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.10.2014, 13:09
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

Uncaught SyntaxError: Unexpected token . events.html:73
Uncaught ReferenceError: daysInMonth is not defined events.html:95(anonymous function)
Ответить с цитированием
  #12 (permalink)  
Старый 22.10.2014, 13:16
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

Сообщение от ViRuSreloaded Посмотреть сообщение
Uncaught SyntaxError: Unexpected token . events.html:73
Uncaught ReferenceError: daysInMonth is not defined events.html:95(anonymous function)
Я же не убрал [...] из кода... Теперь все понятно.
<script>
	function daysInMonth(month,year) {
	return new Date(year, month, 0).getDate();
}
temp_date = new Date();
day = temp_date.getDate();
month = temp_date.getMonth() + 1;
year = temp_date.getFullYear();
if (day < 10) {
day = "0" + day;
}
if (month <10) {
month = "0" + month;
}
var daysInThisMonth = daysInMonth(month,year);
for (var i = 0; i < daysInThisMonth; i++) {
var currentDay = i+1;
	if (currentDay <10) {
	currentDay = "0" + currentDay;
	}
document.write('<a href="http://gostar.bget.ru/events/' + currentDay + month + year +'">'+ currentDay +'</a>');
}
</script>


http://gostar.bget.ru/events.html - проверьте! Все работает! УРА!

Как теперь вывести все это в область календаря? а не сверху на странице?
Нужно вывести сюда:
<div id="calendar_events_content">
		<div id='day' class='full'>
			<a href='#'>
				<div id='day_content'>
					<div id='week_day'>TH</div>
					<div id='month_day'>22</div>
				</div>
			</a>
		</div>

Чтобы цикл заполнил календарь.

Последний раз редактировалось ViRuSreloaded, 22.10.2014 в 13:22. Причина: ужал код, убрал лишние строки
Ответить с цитированием
  #13 (permalink)  
Старый 22.10.2014, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

ViRuSreloaded,
http://learn.javascript.ru/modifying-document
Ответить с цитированием
  #14 (permalink)  
Старый 22.10.2014, 15:14
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

Верхняя часть скрипта:

<script>
	function daysInMonth(month,year) {
	return new Date(year, month, 0).getDate();
}
temp_date = new Date();
day = temp_date.getDate();
month = temp_date.getMonth() + 1;
year = temp_date.getFullYear();

var weekday=new Array(7);

weekday[0]="SU";
weekday[1]="MO";
weekday[2]="TU";
weekday[3]="WE";
weekday[4]="TH";
weekday[5]="FR";
weekday[6]="SA";

if (day < 10) {
day = "0" + day;
}
if (month <10) {
month = "0" + month;
}
var daysInThisMonth = daysInMonth(month,year);
</script>


Затем я вставил в то место, где должен выводиться календарь:
<div id="calendar_events_content">
<script>
for (var i = 0; i < daysInThisMonth; i++) {
var currentDay = i+1;
	if (currentDay <10) {
	currentDay = "0" + currentDay;
	}
var dateForCalendar = new Date(year, month - 1, currentDay);
var currentWeekDay = weekday[dateForCalendar.getDay()];
document.write('<div data-date="' + currentDay + month + year +'" class="day full"><a href="http://gostar.bget.ru/events/' + currentDay + month + year +'"><div class="week_day">'+ currentWeekDay+'</div><div class="month_day">' + currentDay +'</div></a></div>');
}
</script>
</div>


Вопросы:
1) Корректно ли использовать document.write ?
2) Как связать 2 скрипта (этот и скрипт выбора месяца)

скрипт вывода месяца:
<script>
     $(function(){
       var $li = $('#li_month li'), $sel = $('#selectMonth');
       $li.click(function(event) {
         event.preventDefault();
         var text = $(this).text();
         $('#select_month').text(text);
         var val = $('[data-html-text="'+text+'"]', $sel).val();
         $sel.val(val);
      });
});
</script>


HTML:

<div id='lil_navi_select' class='month'>
				<select id="selectMonth" class="hidden_select">

					<option value="0" selected="selected" data-skip="1">MONTH</option>
    				<option value="1" data-html-text="JANUARY">JANUARY</option>
    				<option value="2" data-html-text="FEBRUARY">FEBRUARY</option>
					<option value="3" data-html-text="MARCH">MARCH</option>
					<option value="4" data-html-text="APRIL">APRIL</option>
					<option value="5" data-html-text="MAY">MAY</option>
					<option value="6" data-html-text="JUNE">JUNE</option>
					<option value="7" data-html-text="JULY">JULY</option>
					<option value="8" data-html-text="AUGUST">AUGUST</option>
					<option value="9" data-html-text="SEPTEMBER">SEPTEMBER</option>
					<option value="10" data-html-text="OCTOBER">OCTOBER</option>
					<option value="11" data-html-text="NOVEMBER">NOVEMBER</option>
					<option value="12" data-html-text="DECEMBER">DECEMBER</option>

				</select>
				<div class='output_all'><span id='select_month'>MONTH</span><img src='images/arrow_down_black.png'></div>
				<div id='li_month' class='all'>
					<div class='list_all'>
						<ul>
							<li><a href='#'>JANUARY</a></li>
							<li><a href='#'>FEBRUARY</a></li>
							<li><a href='#'>MARCH</a></li>
							<li><a href='#'>APRIL</a></li>
							<li><a href='#'>MAY</a></li>
							<li><a href='#'>JUNE</a></li>
							<li><a href='#'>JULY</a></li><Br>
							<li><a href='#'>AUGUST</a></li>
							<li><a href='#'>SEPTEMBER</a></li>
							<li><a href='#'>OCTOBER</a></li>
							<li><a href='#'>NOVEMBER</a></li>
							<li><a href='#'>DECEMBER</a></li>
						</ul>
					</div>
				</div>
			</div>


вот
Ответить с цитированием
  #15 (permalink)  
Старый 22.10.2014, 15:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от ViRuSreloaded
1) Корректно ли использовать document.write ?
научитесь мыслить без document.write - как добавлять удалять елементы ссылку смотрите выше.
сделайте функцию которая будет генерировать структуру календаря и отдавать -- на входе номер месяца на выходе дивы -- по клику на li -- стереть контейнер календаря и загрузить в него новый -- пишите алгоритм сами.
Ответить с цитированием
  #16 (permalink)  
Старый 22.10.2014, 16:11
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

Спасибо! Я и хотел сам, только надо понимать алгоритм, спасибо огромное! Сейчас попробую.
Ответить с цитированием
  #17 (permalink)  
Старый 22.10.2014, 18:15
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

if text == "JANUARY" var monthSelected = '0';
			if text == "FEBRUARY" var monthSelected = 1;
			if text == "MARCH" var monthSelected = 2;
			if text == "APRIL" var monthSelected = 3;
			if text == "MAY" var monthSelected = 4;
			if text == "JUNE" var monthSelected = 5;
			if text == "JULY" var monthSelected = 6;
			if text == "AUGUST" var monthSelected = 7;
			if text == "SEPTEMBER" var monthSelected = 8;
			if text == "OCTOBER" var monthSelected = 9;
			if text == "NOVEMBER" var monthSelected = 10;
			if text == "DECEMBER" var monthSelected = 11;
			var month = monthSelected;


Итог: Uncaught SyntaxError: Unexpected identifier

Я так понял проблема в синтаксисе.

Полный код скрипта:
<script>
     $(function(){
       var $li = $('#li_month li'), $sel = $('#selectMonth');
       $li.click(function(event) {
         event.preventDefault();
         var text = $(this).text();
         $('#select_month').text(text);
         var val = $('[data-html-text="'+text+'"]', $sel).val();
         $sel.val(val);
         alert(text);
			if text == "JANUARY" var monthSelected = '0';
			if text == "FEBRUARY" var monthSelected = 1;
			if text == "MARCH" var monthSelected = 2;
			if text == "APRIL" var monthSelected = 3;
			if text == "MAY" var monthSelected = 4;
			if text == "JUNE" var monthSelected = 5;
			if text == "JULY" var monthSelected = 6;
			if text == "AUGUST" var monthSelected = 7;
			if text == "SEPTEMBER" var monthSelected = 8;
			if text == "OCTOBER" var monthSelected = 9;
			if text == "NOVEMBER" var monthSelected = 10;
			if text == "DECEMBER" var monthSelected = 11;
			var month = monthSelected;
         drawCalendar();
      });
});
</script>
Ответить с цитированием
  #18 (permalink)  
Старый 22.10.2014, 18:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

ViRuSreloaded,
if () скобочки где
и у вас же есть значение селекта зачем вам if
Ответить с цитированием
  #19 (permalink)  
Старый 22.10.2014, 18:36
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

со скобками получилось! спасибо!

почему не выполняется функция drawCalendar() со значением month ?

<script>
		function drawCalendar() {
$('.calendar_events_content').append(''); // $('.calendar_events_content').html('');

for (var i = 0; i < daysInThisMonth; i++) {
var currentDay = i+1;
	if (currentDay <10) {
	currentDay = "0" + currentDay;
	}
var dateForCalendar = new Date(year, month - 1, currentDay);
var currentWeekDay = weekday[dateForCalendar.getDay()];

		$('.calendar_events_content').append('<div data-date="' + currentDay +'.'+ month +'.'+ year +'" class="day full"><a href="http://gostar.bget.ru/events/' + currentDay + month + year +'"><div class="week_day">'+ currentWeekDay+'</div><div class="month_day">' + currentDay +'</div></a></div>');
	}

}
</script>
Ответить с цитированием
  #20 (permalink)  
Старый 22.10.2014, 18:37
Аспирант
Отправить личное сообщение для ViRuSreloaded Посмотреть профиль Найти все сообщения от ViRuSreloaded
 
Регистрация: 13.10.2014
Сообщений: 73

<script>
     $(function(){
       var $li = $('#li_month li'), $sel = $('#selectMonth');
       $li.click(function(event) {
         event.preventDefault();
         var text = $(this).text();
         $('#select_month').text(text);
         var val = $('[data-html-text="'+text+'"]', $sel).val();
         $sel.val(val);
         
			if (text == "JANUARY") var monthSelected = 0;
			if (text == "FEBRUARY") var monthSelected = 1;
			if (text == "MARCH") var monthSelected = 2;
			if (text == "APRIL") var monthSelected = 3;
			if (text == "MAY") var monthSelected = 4;
			if (text == "JUNE") var monthSelected = 5;
			if (text == "JULY") var monthSelected = 6;
			if (text == "AUGUST") var monthSelected = 7;
			if (text == "SEPTEMBER") var monthSelected = 8;
			if (text == "OCTOBER") var monthSelected = 9;
			if (text == "NOVEMBER") var monthSelected = 10;
			if (text == "DECEMBER") var monthSelected = 11;
			var month = monthSelected;
			alert(month); // проверяем что month присвоено значение
         drawCalendar();
      });
});
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать в одну строку? hoax Элементы интерфейса 4 13.07.2013 14:56
Функция для перевода размера из байтов в понятный для человека формат Антон Крамолов Ваши сайты и скрипты 4 05.04.2013 16:42
Как соединить 2 div в одну строку или в один? vadim90k (X)HTML/CSS 3 03.09.2012 19:11
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57
объединение элементом массива в одну строку vvsh Элементы интерфейса 2 17.10.2009 19:53