122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
$(document).ready(function(){
 | 
						|
	var result = '',
 | 
						|
	title_text = '',
 | 
						|
	link_text = '',
 | 
						|
	summary_text = '',
 | 
						|
	startDate_text = '',
 | 
						|
	startMon_text = '',
 | 
						|
	startDay_text = '',
 | 
						|
	endDate_text = '',
 | 
						|
	time_text = '',
 | 
						|
	selet = 0,
 | 
						|
	xmlLength = '',
 | 
						|
	indexA = '',
 | 
						|
	indexB = '',
 | 
						|
	indexC = '',
 | 
						|
	month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
 | 
						|
	checking = 1,
 | 
						|
	$events = $('.events'),
 | 
						|
	$mon = $('.events .mon'),
 | 
						|
	$day = $('.events .day'),
 | 
						|
	$link_text = $('.events .event_name'),
 | 
						|
	$time = $('.events .event_info'),
 | 
						|
	$next = $('.events .links_next'),
 | 
						|
	$prev = $('.events .links_prev'),
 | 
						|
	objLength = $events.find('ul > li').length;
 | 
						|
	$next.on("click", function(){
 | 
						|
		if (checking&&selet < xmlLength) {
 | 
						|
			$('.links_prev').removeClass('disabled')
 | 
						|
			selet+=objLength;
 | 
						|
			$events.find('ul').fadeOut("fast", function () {
 | 
						|
				resetText()
 | 
						|
				$events.find('ul').fadeIn("fast" ,getEvent(selet));
 | 
						|
			});
 | 
						|
			if ((xmlLength-selet) == objLength) {
 | 
						|
				$('.links_next').addClass('disabled')
 | 
						|
				checking = 0;
 | 
						|
			} else if ((xmlLength-selet) < objLength) {
 | 
						|
				$('.links_next').addClass('disabled')
 | 
						|
				checking = 0;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return false;
 | 
						|
	});
 | 
						|
	$prev.on("click", function(){
 | 
						|
		if (selet > 0) {
 | 
						|
			$('.links_next').removeClass('disabled')
 | 
						|
			checking = 1;
 | 
						|
			selet-=objLength;
 | 
						|
			$events.find('ul').fadeOut("fast", function () {
 | 
						|
			   $events.find('ul').fadeIn("fast" ,getEvent(selet));
 | 
						|
			});
 | 
						|
			if ((xmlLength-selet) == xmlLength ) {
 | 
						|
				$('.links_prev').addClass('disabled')
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return false;
 | 
						|
	});
 | 
						|
	getEvent(selet);
 | 
						|
	function resetText() {
 | 
						|
		$events.find('li').find($mon).html('');
 | 
						|
		$events.find('li').find($day).html('');
 | 
						|
		$events.find('li').find($link_text).html('');
 | 
						|
		$events.find('li').find($link_text).attr('href', '');
 | 
						|
		$events.find('li').find($time).html('');
 | 
						|
	}
 | 
						|
	function getEvent(selet){
 | 
						|
		$.ajax({
 | 
						|
			type: "GET",
 | 
						|
			url: "/static/nccu_calendar.xml",
 | 
						|
			dataType: "xml",
 | 
						|
			timeout: 1000,
 | 
						|
			error: function(xml){
 | 
						|
				$events.find('.links_next').addClass('disabled')
 | 
						|
				$events.find('.error_mag').show();
 | 
						|
				$events.find('ul').hide();
 | 
						|
				$events.find('.error_mag').html("讀取錯誤");
 | 
						|
			},
 | 
						|
			success: function(xml) {
 | 
						|
				xmlLength = $(xml).find('entry').length;
 | 
						|
				$(xml).find('entry').slice(selet, selet+objLength).each(function(i){
 | 
						|
					title_text = $(this).find('title').text()
 | 
						|
					link_text = $(this).find('link').attr('href')
 | 
						|
					summary_text = $(this).find('summary').text()
 | 
						|
					indexA = summary_text.indexOf("-");
 | 
						|
					indexB = summary_text.indexOf(" ");
 | 
						|
					indexC = summary_text.indexOf("/");
 | 
						|
					//清除前後空白字元
 | 
						|
					summary_text = jQuery.trim(summary_text);
 | 
						|
					//篩選標題
 | 
						|
					title_text = title_text.slice(0, 16)
 | 
						|
					if (summary_text.length == 31) {
 | 
						|
						startDate_text = summary_text.slice(0, indexA);
 | 
						|
						startMon_text = startDate_text.slice((indexC+1), (indexC+3));
 | 
						|
						startDay_text = startDate_text.slice(7);
 | 
						|
						endDate_text = summary_text.slice((indexA+1), indexB);
 | 
						|
						time_text = summary_text.slice((indexB+1));
 | 
						|
					} else {
 | 
						|
						startDate_text = summary_text.slice(0, indexB);
 | 
						|
						startMon_text = startDate_text.slice((indexC+1), (indexC+3));
 | 
						|
						startDay_text = startDate_text.slice(7);
 | 
						|
						endDate_text = '';
 | 
						|
						time_text = summary_text.slice((indexB+1));
 | 
						|
					}
 | 
						|
					if(startMon_text.slice(0, 1) == '0'){
 | 
						|
						startMon_text = month[startMon_text.slice(1)-1];
 | 
						|
					} else {
 | 
						|
						startMon_text = month[startMon_text-1];
 | 
						|
					}
 | 
						|
					$events.find('li').eq(i).find($mon).html(startMon_text);
 | 
						|
					$events.find('li').eq(i).find($day).html(startDay_text);
 | 
						|
					$events.find('li').eq(i).find($link_text).html(title_text+"…");
 | 
						|
					$events.find('li').eq(i).find($link_text).attr('href', link_text);
 | 
						|
					$events.find('li').eq(i).find($time).html('時間:'+time_text);
 | 
						|
					//console.log();
 | 
						|
					/*$('<li></li>')
 | 
						|
					.html('<div class="event_date"><span class="mon">'+startMon_text+'</span><span class="day">'+startDay_text+'</div>')
 | 
						|
					.appendTo('.events ul');*/
 | 
						|
				});//close each(
 | 
						|
			}
 | 
						|
		}); //close $.ajax(
 | 
						|
	}
 | 
						|
}); |