| 2 | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | 
|  | 2 <html> | 
|  | 3 	<head> | 
|  | 4 		<meta http-equiv="content-type" content="text/html; charset=utf-8"> | 
|  | 5 		<link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico"> | 
|  | 6 | 
|  | 7 		<title>KeyTables example</title> | 
|  | 8 		<style type="text/css" title="currentStyle"> | 
|  | 9 			@import "../../media/css/demo_page.css"; | 
|  | 10 			@import "../../media/css/demo_table.css"; | 
|  | 11 		</style> | 
|  | 12 		<script type="text/javascript" charset="utf-8" src="../../media/js/jquery.js"></script> | 
|  | 13 		<script type="text/javascript" charset="utf-8" src="js/KeyTable.js"></script> | 
|  | 14 		<script type="text/javascript" charset="utf-8"> | 
|  | 15 			function fnMessage ( sMesg ) | 
|  | 16 			{ | 
|  | 17 				var n = document.getElementById('info'); | 
|  | 18 				n.innerHTML += sMesg+"<br>"; | 
|  | 19 				n.scrollTop = n.scrollHeight; | 
|  | 20 			} | 
|  | 21 | 
|  | 22 			$(document).ready( function () { | 
|  | 23 				var keys = new KeyTable(); | 
|  | 24 | 
|  | 25 				/* Focus handler for all cells in last column */ | 
|  | 26 				keys.event.focus( 4, null, function( nNode, x, y ) { | 
|  | 27 					fnMessage( "Cell "+x+","+y+" focused ('live' event - column)" ); | 
|  | 28 				} ); | 
|  | 29 | 
|  | 30 				/* Focus handler for all cells in 8th row */ | 
|  | 31 				keys.event.focus( null, 7, function( nNode, x, y ) { | 
|  | 32 					fnMessage( "Cell "+x+","+y+" focused ('live' event - row)" ); | 
|  | 33 				} ); | 
|  | 34 | 
|  | 35 				/* Focus using coords. */ | 
|  | 36 				keys.event.focus( 1, 0, function( nNode ) { | 
|  | 37 					keys.event.remove.focus( nNode ); | 
|  | 38 					fnMessage( "Cell 1,0 focus - this event has now been removed" ); | 
|  | 39 				} ); | 
|  | 40 | 
|  | 41 				keys.event.focus( 1, 3, function() { | 
|  | 42 					fnMessage( "Cell 1,3 focus" ); | 
|  | 43 				} ); | 
|  | 44 | 
|  | 45 				/* focus with a node */ | 
|  | 46 				keys.event.focus( $('#example tbody tr:eq(2) td:eq(0)')[0], function() { | 
|  | 47 					fnMessage( "Cell 0,2 focus" ); | 
|  | 48 				} ); | 
|  | 49 | 
|  | 50 				/* Blur using a node */ | 
|  | 51 				keys.event.blur( $('#example tbody tr:eq(1) td:eq(2)')[0], function() { | 
|  | 52 					fnMessage( "Cell 1,2 blur" ); | 
|  | 53 				} ); | 
|  | 54 | 
|  | 55 				/* Blur using coords */ | 
|  | 56 				keys.event.blur( 2, 4, function() { | 
|  | 57 					fnMessage( "Cell 2,4 blur" ); | 
|  | 58 				} ); | 
|  | 59 | 
|  | 60 				/* Action */ | 
|  | 61 				keys.event.action( 2, 2, function( nNode ) { | 
|  | 62 					fnMessage( "Cell 2,2 action" ); | 
|  | 63 					if ( nNode.style.fontWeight == "" || nNode.style.fontWeight == "normal" ) { | 
|  | 64 						nNode.style.fontWeight = "bold"; | 
|  | 65 					} else { | 
|  | 66 						nNode.style.fontWeight = "normal"; | 
|  | 67 					} | 
|  | 68 				} ); | 
|  | 69 | 
|  | 70 				keys.event.action( 2, 5, function( nNode ) { | 
|  | 71 					fnMessage( "Cell 2,5 action" ); | 
|  | 72 					if ( nNode.style.fontStyle == "" ) { | 
|  | 73 						nNode.style.fontStyle = "italic"; | 
|  | 74 					} else { | 
|  | 75 						nNode.style.fontStyle = ""; | 
|  | 76 					} | 
|  | 77 				} ); | 
|  | 78 			} ); | 
|  | 79 		</script> | 
|  | 80 	</head> | 
|  | 81 	<body id="dt_example"> | 
|  | 82 		<div id="container"> | 
|  | 83 			<div class="full_width big"> | 
|  | 84 				KeyTable example | 
|  | 85 			</div> | 
|  | 86 | 
|  | 87 			<h1>Preamble</h1> | 
|  | 88 			<p>KeyTable allows you to use keyboard navigation on an HTML table. The focused cell is shown through the CSS class ('focus') which in the case below is simply a blue border. Events such as 'focus', 'blur', 'esc' (the escape key) and 'return' (the return key) can be assigned event handling functions thought the API presented.</p> | 
|  | 89 			<p>The example shown below has a few cells (selected at random, but near the top) with blur and focus events assigned to them. You can also see the navigation around the table using arrow keys.</p> | 
|  | 90 | 
|  | 91 			<h1>Live example</h1> | 
|  | 92 			<div id="info" class="box"> | 
|  | 93 				Event information:<br> | 
|  | 94 			</div> | 
|  | 95 			<div id="demo"> | 
|  | 96 <table cellpadding="0" cellspacing="0" border="0" class="display KeyTable" id="example"> | 
|  | 97 	<thead> | 
|  | 98 		<tr> | 
|  | 99 			<th>Rendering engine</th> | 
|  | 100 			<th>Browser</th> | 
|  | 101 			<th>Platform(s)</th> | 
|  | 102 			<th>Engine version</th> | 
|  | 103 			<th>CSS grade</th> | 
|  | 104 		</tr> | 
|  | 105 	</thead> | 
|  | 106 	<tbody> | 
|  | 107 		<tr class="gradeX"> | 
|  | 108 			<td>Trident</td> | 
|  | 109 			<td>Internet Explorer 4.0 (focus once)</td> | 
|  | 110 			<td>Win 95+</td> | 
|  | 111 			<td class="center">4</td> | 
|  | 112 			<td class="center">X</td> | 
|  | 113 		</tr> | 
|  | 114 		<tr class="gradeC"> | 
|  | 115 			<td>Trident</td> | 
|  | 116 			<td>Internet Explorer 5.0</td> | 
|  | 117 			<td>Win 95+ (blur)</td> | 
|  | 118 			<td class="center">5</td> | 
|  | 119 			<td class="center">C</td> | 
|  | 120 		</tr> | 
|  | 121 		<tr class="gradeA"> | 
|  | 122 			<td>Trident (focus)</td> | 
|  | 123 			<td>Internet Explorer 5.5</td> | 
|  | 124 			<td>Win 95+ (action/bold)</td> | 
|  | 125 			<td class="center">5.5</td> | 
|  | 126 			<td class="center">A</td> | 
|  | 127 		</tr> | 
|  | 128 		<tr class="gradeA"> | 
|  | 129 			<td>Trident</td> | 
|  | 130 			<td>Internet Explorer 6 (focus)</td> | 
|  | 131 			<td>Win 98+</td> | 
|  | 132 			<td class="center">6</td> | 
|  | 133 			<td class="center">A</td> | 
|  | 134 		</tr> | 
|  | 135 		<tr class="gradeA"> | 
|  | 136 			<td>Trident</td> | 
|  | 137 			<td>Internet Explorer 7</td> | 
|  | 138 			<td>Win XP SP2+ (blur)</td> | 
|  | 139 			<td class="center">7</td> | 
|  | 140 			<td class="center">A</td> | 
|  | 141 		</tr> | 
|  | 142 		<tr class="gradeA"> | 
|  | 143 			<td>Trident</td> | 
|  | 144 			<td>AOL browser (AOL desktop)</td> | 
|  | 145 			<td>Win XP (action/italic)</td> | 
|  | 146 			<td class="center">6</td> | 
|  | 147 			<td class="center">A</td> | 
|  | 148 		</tr> | 
|  | 149 		<tr class="gradeA"> | 
|  | 150 			<td>Gecko</td> | 
|  | 151 			<td>Firefox 1.0</td> | 
|  | 152 			<td>Win 98+ / OSX.2+</td> | 
|  | 153 			<td class="center">1.7</td> | 
|  | 154 			<td class="center">A</td> | 
|  | 155 		</tr> | 
|  | 156 		<tr class="gradeA"> | 
|  | 157 			<td>Gecko (focus - row)</td> | 
|  | 158 			<td>Firefox 1.5</td> | 
|  | 159 			<td>Win 98+ / OSX.2+</td> | 
|  | 160 			<td class="center">1.8</td> | 
|  | 161 			<td class="center">A</td> | 
|  | 162 		</tr> | 
|  | 163 		<tr class="gradeA"> | 
|  | 164 			<td>Gecko</td> | 
|  | 165 			<td>Firefox 2.0</td> | 
|  | 166 			<td>Win 98+ / OSX.2+</td> | 
|  | 167 			<td class="center">1.8</td> | 
|  | 168 			<td class="center">A</td> | 
|  | 169 		</tr> | 
|  | 170 		<tr class="gradeA"> | 
|  | 171 			<td>Gecko</td> | 
|  | 172 			<td>Firefox 3.0</td> | 
|  | 173 			<td>Win 2k+ / OSX.3+</td> | 
|  | 174 			<td class="center">1.9</td> | 
|  | 175 			<td class="center">A</td> | 
|  | 176 		</tr> | 
|  | 177 		<tr class="gradeA"> | 
|  | 178 			<td>Gecko</td> | 
|  | 179 			<td>Camino 1.0</td> | 
|  | 180 			<td>OSX.2+</td> | 
|  | 181 			<td class="center">1.8</td> | 
|  | 182 			<td class="center">A</td> | 
|  | 183 		</tr> | 
|  | 184 		<tr class="gradeA"> | 
|  | 185 			<td>Gecko</td> | 
|  | 186 			<td>Camino 1.5</td> | 
|  | 187 			<td>OSX.3+</td> | 
|  | 188 			<td class="center">1.8</td> | 
|  | 189 			<td class="center">A</td> | 
|  | 190 		</tr> | 
|  | 191 		<tr class="gradeA"> | 
|  | 192 			<td>Gecko</td> | 
|  | 193 			<td>Netscape 7.2</td> | 
|  | 194 			<td>Win 95+ / Mac OS 8.6-9.2</td> | 
|  | 195 			<td class="center">1.7</td> | 
|  | 196 			<td class="center">A</td> | 
|  | 197 		</tr> | 
|  | 198 		<tr class="gradeA"> | 
|  | 199 			<td>Gecko</td> | 
|  | 200 			<td>Netscape Browser 8</td> | 
|  | 201 			<td>Win 98SE+</td> | 
|  | 202 			<td class="center">1.7</td> | 
|  | 203 			<td class="center">A</td> | 
|  | 204 		</tr> | 
|  | 205 		<tr class="gradeA"> | 
|  | 206 			<td>Gecko</td> | 
|  | 207 			<td>Netscape Navigator 9</td> | 
|  | 208 			<td>Win 98+ / OSX.2+</td> | 
|  | 209 			<td class="center">1.8</td> | 
|  | 210 			<td class="center">A</td> | 
|  | 211 		</tr> | 
|  | 212 		<tr class="gradeA"> | 
|  | 213 			<td>Gecko</td> | 
|  | 214 			<td>Mozilla 1.0</td> | 
|  | 215 			<td>Win 95+ / OSX.1+</td> | 
|  | 216 			<td class="center">1</td> | 
|  | 217 			<td class="center">A</td> | 
|  | 218 		</tr> | 
|  | 219 		<tr class="gradeA"> | 
|  | 220 			<td>Gecko</td> | 
|  | 221 			<td>Mozilla 1.1</td> | 
|  | 222 			<td>Win 95+ / OSX.1+</td> | 
|  | 223 			<td class="center">1.1</td> | 
|  | 224 			<td class="center">A</td> | 
|  | 225 		</tr> | 
|  | 226 		<tr class="gradeA"> | 
|  | 227 			<td>Gecko</td> | 
|  | 228 			<td>Mozilla 1.2</td> | 
|  | 229 			<td>Win 95+ / OSX.1+</td> | 
|  | 230 			<td class="center">1.2</td> | 
|  | 231 			<td class="center">A</td> | 
|  | 232 		</tr> | 
|  | 233 		<tr class="gradeA"> | 
|  | 234 			<td>Gecko</td> | 
|  | 235 			<td>Mozilla 1.3</td> | 
|  | 236 			<td>Win 95+ / OSX.1+</td> | 
|  | 237 			<td class="center">1.3</td> | 
|  | 238 			<td class="center">A</td> | 
|  | 239 		</tr> | 
|  | 240 		<tr class="gradeA"> | 
|  | 241 			<td>Gecko</td> | 
|  | 242 			<td>Mozilla 1.4</td> | 
|  | 243 			<td>Win 95+ / OSX.1+</td> | 
|  | 244 			<td class="center">1.4</td> | 
|  | 245 			<td class="center">A</td> | 
|  | 246 		</tr> | 
|  | 247 		<tr class="gradeA"> | 
|  | 248 			<td>Gecko</td> | 
|  | 249 			<td>Mozilla 1.5</td> | 
|  | 250 			<td>Win 95+ / OSX.1+</td> | 
|  | 251 			<td class="center">1.5</td> | 
|  | 252 			<td class="center">A</td> | 
|  | 253 		</tr> | 
|  | 254 		<tr class="gradeA"> | 
|  | 255 			<td>Gecko</td> | 
|  | 256 			<td>Mozilla 1.6</td> | 
|  | 257 			<td>Win 95+ / OSX.1+</td> | 
|  | 258 			<td class="center">1.6</td> | 
|  | 259 			<td class="center">A</td> | 
|  | 260 		</tr> | 
|  | 261 		<tr class="gradeA"> | 
|  | 262 			<td>Gecko</td> | 
|  | 263 			<td>Mozilla 1.7</td> | 
|  | 264 			<td>Win 98+ / OSX.1+</td> | 
|  | 265 			<td class="center">1.7</td> | 
|  | 266 			<td class="center">A</td> | 
|  | 267 		</tr> | 
|  | 268 		<tr class="gradeA"> | 
|  | 269 			<td>Gecko</td> | 
|  | 270 			<td>Mozilla 1.8</td> | 
|  | 271 			<td>Win 98+ / OSX.1+</td> | 
|  | 272 			<td class="center">1.8</td> | 
|  | 273 			<td class="center">A</td> | 
|  | 274 		</tr> | 
|  | 275 		<tr class="gradeA"> | 
|  | 276 			<td>Gecko</td> | 
|  | 277 			<td>Seamonkey 1.1</td> | 
|  | 278 			<td>Win 98+ / OSX.2+</td> | 
|  | 279 			<td class="center">1.8</td> | 
|  | 280 			<td class="center">A</td> | 
|  | 281 		</tr> | 
|  | 282 		<tr class="gradeA"> | 
|  | 283 			<td>Gecko</td> | 
|  | 284 			<td>Epiphany 2.20</td> | 
|  | 285 			<td>Gnome</td> | 
|  | 286 			<td class="center">1.8</td> | 
|  | 287 			<td class="center">A</td> | 
|  | 288 		</tr> | 
|  | 289 		<tr class="gradeA"> | 
|  | 290 			<td>Webkit</td> | 
|  | 291 			<td>Safari 1.2</td> | 
|  | 292 			<td>OSX.3</td> | 
|  | 293 			<td class="center">125.5</td> | 
|  | 294 			<td class="center">A</td> | 
|  | 295 		</tr> | 
|  | 296 		<tr class="gradeA"> | 
|  | 297 			<td>Webkit</td> | 
|  | 298 			<td>Safari 1.3</td> | 
|  | 299 			<td>OSX.3</td> | 
|  | 300 			<td class="center">312.8</td> | 
|  | 301 			<td class="center">A</td> | 
|  | 302 		</tr> | 
|  | 303 		<tr class="gradeA"> | 
|  | 304 			<td>Webkit</td> | 
|  | 305 			<td>Safari 2.0</td> | 
|  | 306 			<td>OSX.4+</td> | 
|  | 307 			<td class="center">419.3</td> | 
|  | 308 			<td class="center">A</td> | 
|  | 309 		</tr> | 
|  | 310 		<tr class="gradeA"> | 
|  | 311 			<td>Webkit</td> | 
|  | 312 			<td>Safari 3.0</td> | 
|  | 313 			<td>OSX.4+</td> | 
|  | 314 			<td class="center">522.1</td> | 
|  | 315 			<td class="center">A</td> | 
|  | 316 		</tr> | 
|  | 317 		<tr class="gradeA"> | 
|  | 318 			<td>Webkit</td> | 
|  | 319 			<td>OmniWeb 5.5</td> | 
|  | 320 			<td>OSX.4+</td> | 
|  | 321 			<td class="center">420</td> | 
|  | 322 			<td class="center">A</td> | 
|  | 323 		</tr> | 
|  | 324 		<tr class="gradeA"> | 
|  | 325 			<td>Webkit</td> | 
|  | 326 			<td>iPod Touch / iPhone</td> | 
|  | 327 			<td>iPod</td> | 
|  | 328 			<td class="center">420.1</td> | 
|  | 329 			<td class="center">A</td> | 
|  | 330 		</tr> | 
|  | 331 		<tr class="gradeA"> | 
|  | 332 			<td>Webkit</td> | 
|  | 333 			<td>S60</td> | 
|  | 334 			<td>S60</td> | 
|  | 335 			<td class="center">413</td> | 
|  | 336 			<td class="center">A</td> | 
|  | 337 		</tr> | 
|  | 338 		<tr class="gradeA"> | 
|  | 339 			<td>Presto</td> | 
|  | 340 			<td>Opera 7.0</td> | 
|  | 341 			<td>Win 95+ / OSX.1+</td> | 
|  | 342 			<td class="center">-</td> | 
|  | 343 			<td class="center">A</td> | 
|  | 344 		</tr> | 
|  | 345 		<tr class="gradeA"> | 
|  | 346 			<td>Presto</td> | 
|  | 347 			<td>Opera 7.5</td> | 
|  | 348 			<td>Win 95+ / OSX.2+</td> | 
|  | 349 			<td class="center">-</td> | 
|  | 350 			<td class="center">A</td> | 
|  | 351 		</tr> | 
|  | 352 		<tr class="gradeA"> | 
|  | 353 			<td>Presto</td> | 
|  | 354 			<td>Opera 8.0</td> | 
|  | 355 			<td>Win 95+ / OSX.2+</td> | 
|  | 356 			<td class="center">-</td> | 
|  | 357 			<td class="center">A</td> | 
|  | 358 		</tr> | 
|  | 359 		<tr class="gradeA"> | 
|  | 360 			<td>Presto</td> | 
|  | 361 			<td>Opera 8.5</td> | 
|  | 362 			<td>Win 95+ / OSX.2+</td> | 
|  | 363 			<td class="center">-</td> | 
|  | 364 			<td class="center">A</td> | 
|  | 365 		</tr> | 
|  | 366 		<tr class="gradeA"> | 
|  | 367 			<td>Presto</td> | 
|  | 368 			<td>Opera 9.0</td> | 
|  | 369 			<td>Win 95+ / OSX.3+</td> | 
|  | 370 			<td class="center">-</td> | 
|  | 371 			<td class="center">A</td> | 
|  | 372 		</tr> | 
|  | 373 		<tr class="gradeA"> | 
|  | 374 			<td>Presto</td> | 
|  | 375 			<td>Opera 9.2</td> | 
|  | 376 			<td>Win 88+ / OSX.3+</td> | 
|  | 377 			<td class="center">-</td> | 
|  | 378 			<td class="center">A</td> | 
|  | 379 		</tr> | 
|  | 380 		<tr class="gradeA"> | 
|  | 381 			<td>Presto</td> | 
|  | 382 			<td>Opera 9.5</td> | 
|  | 383 			<td>Win 88+ / OSX.3+</td> | 
|  | 384 			<td class="center">-</td> | 
|  | 385 			<td class="center">A</td> | 
|  | 386 		</tr> | 
|  | 387 		<tr class="gradeA"> | 
|  | 388 			<td>Presto</td> | 
|  | 389 			<td>Opera for Wii</td> | 
|  | 390 			<td>Wii</td> | 
|  | 391 			<td class="center">-</td> | 
|  | 392 			<td class="center">A</td> | 
|  | 393 		</tr> | 
|  | 394 		<tr class="gradeA"> | 
|  | 395 			<td>Presto</td> | 
|  | 396 			<td>Nokia N800</td> | 
|  | 397 			<td>N800</td> | 
|  | 398 			<td class="center">-</td> | 
|  | 399 			<td class="center">A</td> | 
|  | 400 		</tr> | 
|  | 401 		<tr class="gradeA"> | 
|  | 402 			<td>Presto</td> | 
|  | 403 			<td>Nintendo DS browser</td> | 
|  | 404 			<td>Nintendo DS</td> | 
|  | 405 			<td class="center">8.5</td> | 
|  | 406 			<td class="center">C/A<sup>1</sup></td> | 
|  | 407 		</tr> | 
|  | 408 		<tr class="gradeC"> | 
|  | 409 			<td>KHTML</td> | 
|  | 410 			<td>Konqureror 3.1</td> | 
|  | 411 			<td>KDE 3.1</td> | 
|  | 412 			<td class="center">3.1</td> | 
|  | 413 			<td class="center">C</td> | 
|  | 414 		</tr> | 
|  | 415 		<tr class="gradeA"> | 
|  | 416 			<td>KHTML</td> | 
|  | 417 			<td>Konqureror 3.3</td> | 
|  | 418 			<td>KDE 3.3</td> | 
|  | 419 			<td class="center">3.3</td> | 
|  | 420 			<td class="center">A</td> | 
|  | 421 		</tr> | 
|  | 422 		<tr class="gradeA"> | 
|  | 423 			<td>KHTML</td> | 
|  | 424 			<td>Konqureror 3.5</td> | 
|  | 425 			<td>KDE 3.5</td> | 
|  | 426 			<td class="center">3.5</td> | 
|  | 427 			<td class="center">A</td> | 
|  | 428 		</tr> | 
|  | 429 		<tr class="gradeX"> | 
|  | 430 			<td>Tasman</td> | 
|  | 431 			<td>Internet Explorer 4.5</td> | 
|  | 432 			<td>Mac OS 8-9</td> | 
|  | 433 			<td class="center">-</td> | 
|  | 434 			<td class="center">X</td> | 
|  | 435 		</tr> | 
|  | 436 		<tr class="gradeC"> | 
|  | 437 			<td>Tasman</td> | 
|  | 438 			<td>Internet Explorer 5.1</td> | 
|  | 439 			<td>Mac OS 7.6-9</td> | 
|  | 440 			<td class="center">1</td> | 
|  | 441 			<td class="center">C</td> | 
|  | 442 		</tr> | 
|  | 443 		<tr class="gradeC"> | 
|  | 444 			<td>Tasman</td> | 
|  | 445 			<td>Internet Explorer 5.2</td> | 
|  | 446 			<td>Mac OS 8-X</td> | 
|  | 447 			<td class="center">1</td> | 
|  | 448 			<td class="center">C</td> | 
|  | 449 		</tr> | 
|  | 450 		<tr class="gradeA"> | 
|  | 451 			<td>Misc</td> | 
|  | 452 			<td>NetFront 3.1</td> | 
|  | 453 			<td>Embedded devices</td> | 
|  | 454 			<td class="center">-</td> | 
|  | 455 			<td class="center">C</td> | 
|  | 456 		</tr> | 
|  | 457 		<tr class="gradeA"> | 
|  | 458 			<td>Misc</td> | 
|  | 459 			<td>NetFront 3.4</td> | 
|  | 460 			<td>Embedded devices</td> | 
|  | 461 			<td class="center">-</td> | 
|  | 462 			<td class="center">A</td> | 
|  | 463 		</tr> | 
|  | 464 		<tr class="gradeX"> | 
|  | 465 			<td>Misc</td> | 
|  | 466 			<td>Dillo 0.8</td> | 
|  | 467 			<td>Embedded devices</td> | 
|  | 468 			<td class="center">-</td> | 
|  | 469 			<td class="center">X</td> | 
|  | 470 		</tr> | 
|  | 471 		<tr class="gradeX"> | 
|  | 472 			<td>Misc</td> | 
|  | 473 			<td>Links</td> | 
|  | 474 			<td>Text only</td> | 
|  | 475 			<td class="center">-</td> | 
|  | 476 			<td class="center">X</td> | 
|  | 477 		</tr> | 
|  | 478 		<tr class="gradeX"> | 
|  | 479 			<td>Misc</td> | 
|  | 480 			<td>Lynx</td> | 
|  | 481 			<td>Text only</td> | 
|  | 482 			<td class="center">-</td> | 
|  | 483 			<td class="center">X</td> | 
|  | 484 		</tr> | 
|  | 485 		<tr class="gradeC"> | 
|  | 486 			<td>Misc</td> | 
|  | 487 			<td>IE Mobile</td> | 
|  | 488 			<td>Windows Mobile 6</td> | 
|  | 489 			<td class="center">-</td> | 
|  | 490 			<td class="center">C</td> | 
|  | 491 		</tr> | 
|  | 492 		<tr class="gradeC"> | 
|  | 493 			<td>Misc</td> | 
|  | 494 			<td>PSP browser</td> | 
|  | 495 			<td>PSP</td> | 
|  | 496 			<td class="center">-</td> | 
|  | 497 			<td class="center">C</td> | 
|  | 498 		</tr> | 
|  | 499 		<tr class="gradeU"> | 
|  | 500 			<td>Other browsers</td> | 
|  | 501 			<td>All others</td> | 
|  | 502 			<td>-</td> | 
|  | 503 			<td class="center">-</td> | 
|  | 504 			<td class="center">U</td> | 
|  | 505 		</tr> | 
|  | 506 	</tbody> | 
|  | 507 </table> | 
|  | 508 			</div> | 
|  | 509 			<div class="spacer"></div> | 
|  | 510 | 
|  | 511 | 
|  | 512 			<h1>Initialisation code</h1> | 
|  | 513 			<pre>function fnMessage ( sMesg ) | 
|  | 514 { | 
|  | 515 	var n = document.getElementById('info'); | 
|  | 516 	n.innerHTML += sMesg+"<br>"; | 
|  | 517 	n.scrollTop = n.scrollHeight; | 
|  | 518 } | 
|  | 519 | 
|  | 520 $(document).ready( function () { | 
|  | 521 	var keys = new KeyTable(); | 
|  | 522 | 
|  | 523 	/* Focus handler for all cells in last column */ | 
|  | 524 	keys.event.focus( 4, null, function( nNode, x, y ) { | 
|  | 525 		fnMessage( "Cell "+x+","+y+" focused ('live' event - column)" ); | 
|  | 526 	} ); | 
|  | 527 | 
|  | 528 	/* Focus handler for all cells in 8th row */ | 
|  | 529 	keys.event.focus( null, 7, function( nNode, x, y ) { | 
|  | 530 		fnMessage( "Cell "+x+","+y+" focused ('live' event - row)" ); | 
|  | 531 	} ); | 
|  | 532 | 
|  | 533 	/* Focus using coords. */ | 
|  | 534 	keys.event.focus( 1, 0, function( nNode ) { | 
|  | 535 		keys.event.remove.focus( nNode ); | 
|  | 536 		fnMessage( "Cell 1,0 focus - this event has now been removed" ); | 
|  | 537 	} ); | 
|  | 538 | 
|  | 539 	keys.event.focus( 1, 3, function() { | 
|  | 540 		fnMessage( "Cell 1,3 focus" ); | 
|  | 541 	} ); | 
|  | 542 | 
|  | 543 	/* focus with a node */ | 
|  | 544 	keys.event.focus( $('#example tbody tr:eq(2) td:eq(0)')[0], function() { | 
|  | 545 		fnMessage( "Cell 0,2 focus" ); | 
|  | 546 	} ); | 
|  | 547 | 
|  | 548 	/* Blur using a node */ | 
|  | 549 	keys.event.blur( $('#example tbody tr:eq(1) td:eq(2)')[0], function() { | 
|  | 550 		fnMessage( "Cell 1,2 blur" ); | 
|  | 551 	} ); | 
|  | 552 | 
|  | 553 	/* Blur using coords */ | 
|  | 554 	keys.event.blur( 2, 4, function() { | 
|  | 555 		fnMessage( "Cell 2,4 blur" ); | 
|  | 556 	} ); | 
|  | 557 | 
|  | 558 	/* Action */ | 
|  | 559 	keys.event.action( 2, 2, function( nNode ) { | 
|  | 560 		fnMessage( "Cell 2,2 action" ); | 
|  | 561 		if ( nNode.style.fontWeight == "" || nNode.style.fontWeight == "normal" ) { | 
|  | 562 			nNode.style.fontWeight = "bold"; | 
|  | 563 		} else { | 
|  | 564 			nNode.style.fontWeight = "normal"; | 
|  | 565 		} | 
|  | 566 	} ); | 
|  | 567 | 
|  | 568 	keys.event.action( 2, 5, function( nNode ) { | 
|  | 569 		fnMessage( "Cell 2,5 action" ); | 
|  | 570 		if ( nNode.style.fontStyle == "" ) { | 
|  | 571 			nNode.style.fontStyle = "italic"; | 
|  | 572 		} else { | 
|  | 573 			nNode.style.fontStyle = ""; | 
|  | 574 		} | 
|  | 575 	} ); | 
|  | 576 } );</pre> | 
|  | 577 | 
|  | 578 | 
|  | 579 			<h1>Other examples</h1> | 
|  | 580 			<ul> | 
|  | 581 				<li><a href="index.html">Basic usage</a></li> | 
|  | 582 				<li><a href="editing.html">Editing a table</a></li> | 
|  | 583 				<li><a href="form.html">Integration with an HTML form</a></li> | 
|  | 584 				<li><a href="datatable.html">Integration with DataTables</a></li> | 
|  | 585 				<li><a href="datatable_scrolling.html">Using KeyTable with scrolling in DataTables</a></li> | 
|  | 586 			</ul> | 
|  | 587 | 
|  | 588 			<div id="footer" style="text-align:center;"> | 
|  | 589 				<span style="font-size:10px;"> | 
|  | 590 					KeyTable © Allan Jardine 2009.<br> | 
|  | 591 					Information in the table © <a href="http://www.u4eatech.com">U4EA Technologies</a> 2007-2009.</span> | 
|  | 592 			</div> | 
|  | 593 		</div> | 
|  | 594 	</body> | 
|  | 595 </html> |