jQuery
October 30, 2011
Detect an iPad and provide a non-Flash alternative
try{ ["iPad","iPod","iPhone"].each( function(i){ if(navigator.userAgent.indexOf(i) > -1){ //Do iPad stuff here } }); } catch(e){ var meh = 'meh'; }
Posted by pj at 08:40 PM | Comments (0)
October 19, 2011
Alternately colour the rows in a table with jQuery
var color = '#efefef'; var counter = 0; function switch_bg(counter){ if(eval(counter/2) == eval(counter/2).toFixed(0)){ return color; } else { return 'white'; } } jQuery('tbody tr').each( function(){ counter++; jQuery(this).find('td').each( function(){ jQuery(this).css({ 'background-color' : switch_bg(counter) }); } ); } );
Posted by pj at 06:42 PM
May 13, 2010
Creating a YouTube Gallery using jQuery Fancybox
Posted by pj at 03:34 PM | Comments (0)
May 07, 2010
JQuery $.get() caching in IE 7
Having extensively used jQuery AJAX all over the site we built in Feb have now discovered that IE 7 caches GET requests if the URL is the same? WTF? That's helpful for regularly updated feeds. Thanks MS. My day will now consist of finding every GET call in every CMS page and application script and pasting { blah : 1 , 'random' : Math.floor(Math.random()*1000 ) }
into it. RSI here we come.
Posted by pj at 01:22 PM | Comments (0)
December 10, 2009
FullCalendar Code
This is a genius piece of jQuery:
http://arshaw.com/fullcalendar/
<script type="text/javascript"> var events = [ { title: 'Dummy', start: new Date(1900,1,1)} ,{ title: "Reuters Datastream Training", start: "2009-09-22T16:00:00+01:00", end: "2009-09-22T17:00:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/reuters-datastream-training" } ,{ title: "Pom tiddly pom", start: "2009-11-23T10:59:00+00:00", end: "2009-11-23T12:49:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/pom-tiddly-pom" } ,{ title: "Management of R and D and Product Innovation", start: "2009-02-16T16:10:00+00:00", end: "2009-02-16T18:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation2" } ]; </script> <script type="text/javascript"> var recurrences = [ { title: 'Dummy' } ,{ title: "Foundations of Finance Theory", start: "2009-09-22T14:00:00+01:00", end: "2009-09-22T15:50:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/foundations-of-finance-theory", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091201T000000", stop_date: "2009-12-01T00:00:00+00:00" } ,{ title: "Analysis of Corporate Financial Information Lecture", start: "2009-09-24T11:10:00+01:00", end: "2009-09-24T13:00:00+01:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/analysis-of-corporate-financial-information-lecture", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091203T000000", stop_date: "2009-12-03T00:00:00+00:00" } ,{ title: "My test title", start: "2009-12-02T16:00:00+00:00", end: "2009-12-02T17:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/my-test-title", frequency: "FREQ=WEEKLY;INTERVAL=2;UNTIL=20100324T000000", stop_date: "2010-03-24T00:00:00+00:00" } ,{ title: "Derivatives Tutorial Group 1", start: "2010-01-11T09:00:00+00:00", end: "2010-01-11T10:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Management of R and D and Product Innovation", start: "2010-01-12T16:10:00+00:00", end: "2010-01-12T18:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100214T000000", stop_date: "2010-02-14T00:00:00+00:00" } ,{ title: "Doing Business Projects in Emerging Markets", start: "2010-01-11T09:00:00+00:00", end: "2010-01-11T10:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/doing-business-projects-in-emerging-markets", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Derivatives Tutorial Group 2", start: "2010-01-11T10:00:00+00:00", end: "2010-01-11T11:00:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial-group-2", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Corporate Strategy", start: "2010-01-11T21:00:00+00:00", end: "2010-01-11T22:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/corporate-strategy", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ,{ title: "Advertising Management", start: "2010-01-11T14:00:00+00:00", end: "2010-01-11T15:50:00+00:00", allDay: false, url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/advertising-management", frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000", stop_date: "2010-02-21T00:00:00+00:00" } ]; function get_event_recurrences(recurrences, events){ var end_date; for(i in recurrences){ if(i > 0){ var this_one = recurrences[i]; var number_of_days = 7; if(this_one['frequency'].match(/DAILY/)){ number_of_days = 1; } if(this_one['frequency'].match(/MONTHLY/)){ number_of_days = 30; } if(this_one['frequency'].match(/WEEKLY/)){ number_of_days = 7; } var stop_date = eval($.fullCalendar.parseDate(this_one['stop_date']).getTime()) / 1000; end_date = eval($.fullCalendar.parseDate(this_one['end']).getTime()) / 1000; var start_date = eval($.fullCalendar.parseDate(this_one['start']).getTime()) / 1000; var interval = (60 * 60 * 24) * number_of_days * extract_interval(this_one['frequency']); //alert((eval(stop_date) - eval(start_date)) / interval); for(d = start_date; d < stop_date; d = d + interval){ var start = d; var new_oc = {}; new_oc['title'] = this_one['title']; new_oc['url'] = this_one['url']; new_oc['allDay'] = this_one['allDay']; new_oc['start'] = new Date(start*1000); new_oc['end'] = new Date(end_date*1000); end_date = end_date + interval; events.push(new_oc); } } } return events; } function extract_interval(frequency){ var da_list = frequency.split(';'); var interval = da_list[1]; var da_number = interval.split('='); return eval(da_number[1]); } </script><script type="text/javascript"> var now = new Date(); $(document).ready( function(){ $('#calendar').fullCalendar( {header: {left: 'prev,next today',center: 'title', right: 'month,agendaWeek,agendaDay'}, columnFormat: { week: 'ddd d MMM', // Mon 9/7 day: 'dddd d MMM' // Monday 9/7 }, editable: false, firstHour: 9, //eval(now.getHours()), minTime: '8:30am', maxTime: '8:30pm', timeFormat: 'H:mm', firstDay: 1, defaultView: 'agendaWeek', currentTimezone: 'Europe/London', events: get_event_recurrences(recurrences, events)}); } ); </script>
Posted by pj at 04:42 PM | Comments (0)