Changeset 331 in products for qPloneTiles/tags/0.2/skins/qPloneTiles/tiles.js
- Timestamp:
- Apr 21, 2006 11:36:58 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
qPloneTiles/tags/0.2/skins/qPloneTiles/tiles.js
r328 r331 7 7 list = (parentElement || window.document.body).getElementsByTagName('*'); 8 8 if(list.length == 0) list = (parentElement || window.document.body).all; 9 var class_re = new RegExp('(^|\\s)' + className + '(\\s|$)'); 10 for(var i = 0; i < list.length; i++) if(list[i].className.match(class_re)) result[result.length] = list[i]; 11 return result; 9 for(var i = 0; i < list.length; i++) { 10 // if(DEBUG) message += '\n' + list[i].className; 11 if(list[i].className.match(new RegExp('(^|\\s)' + className + '(\\s|$)'))) result[result.length] = list[i]; 12 } 13 return result 12 14 }; 13 15 14 // browser compatibility functions 15 function add_Event(obj, evt, listener, captured) { 16 if (!obj.addEventListener) obj.attachEvent('on'+evt, listener); 17 else obj.addEventListener(evt, listener, captured); 16 function getNeededHref(a_list) { 17 var result, classname_re = new RegExp('(^|\\s)' + 'primary' + '(\\s|$)'); 18 if(a_list.length == 0) return false; 19 for(var i = 0; i < a_list.length; i++) { 20 if(classname_re.exec(a_list[i].className)) return a_list[i].href; 21 } 22 return a_list[0].href 18 23 } 19 24 20 function stopBubbling(e) { 21 if(!e) window.event.cancelBubble=true; 22 else (e.stopPropagation) ? e.stopPropagation() : e.cancelBubble=true; 25 function setTiles(){ 26 var tiles_elms = getElementsByClassName("tile", window.document) 27 for(var i = 0; i < tiles_elms.length; i++) { 28 var tiles_a = tiles_elms[i].getElementsByTagName('A'); 29 if(tiles_a.length > 0) { 30 var Href = getNeededHref(tiles_a); 31 if(Href != false) tiles_elms[i].onclick = new Function("window.location = '"+Href+"'; return false;") 32 } 33 if(DEBUG) message += '\n' + tiles_elms[i].onclick + ' - ' + Href; 34 } 35 if(DEBUG) window.alert(message); 23 36 } 24 37 25 function getPrimaryLink(list) { 26 // get first a.primary element from the list 27 // or just first element if no primary anchor is marked 28 if(list.length == 0) return false; 29 var primary = new RegExp('(^|\\s)' + 'primary' + '(\\s|$)'); 30 for(var i = 0; i < list.length; i++) if(primary.exec(list[i].className)) return list[i]; 31 return list[0]; 32 } 33 34 function initTiles(){ 35 var tiles = getElementsByClassName("tile", window.document) 36 for(var i = 0; i < tiles.length; i++) { 37 var tile = tiles[i], 38 hrefs = tile.getElementsByTagName('A'); 39 var a = getPrimaryLink(hrefs); 40 if (a) { 41 // adding styling for tiles 42 tile.style.cursor='pointer'; 43 tile.tabIndex = 0; 44 // adding event handling 45 add_Event(tile, 'click', new Function("e", "window.location='"+a.href+"';stopBubbling(e)"), false); 46 add_Event(tile, 'mouseover', new Function("e", "window.status= '"+a.href+"';stopBubbling(e)"), false); 47 add_Event(tile, 'mouseout', function( e ){ window.status= ''; stopBubbling(e) }, false); 48 } 49 } 50 } 51 52 registerPloneFunction(initTiles); 38 registerPloneFunction(setTiles);
Note: See TracChangeset
for help on using the changeset viewer.