comparison client/digitallibrary/jquery/jquery.digilib.regions.js @ 828:7b3e5c666269 jquery

predefine region content with a rel=
author hertzhaft
date Tue, 01 Mar 2011 17:12:25 +0100
parents f07b8ed13194
children f381d088da88
comparison
equal deleted inserted replaced
825:f07b8ed13194 828:7b3e5c666269
166 $html.contents().remove(); 166 $html.contents().remove();
167 }); 167 });
168 return; 168 return;
169 } 169 }
170 // empty the div for HTML display 170 // empty the div for HTML display
171 $html.append($('<div/>').text('<div class="keep regioncontent">'));
171 $.each(data.regions, function(index, region) { 172 $.each(data.regions, function(index, region) {
172 var title = "area=" 173 var area = "area:"
173 + region.x + "/" + region.y + "/" 174 + region.x + "/" + region.y + "/"
174 + region.width + "/" + region.height; 175 + region.width + "/" + region.height;
175 $html.append($('<div/>').text('<div class="keep regioncontent" title="' + title + '">')); 176 $html.append($('<div/>').text('<a href="" rel="' + area + '">'));
176 $html.append($('<div/>').text('</div>')); 177 $html.append($('<div/>').text('</a>'));
177 }); 178 });
179 $html.append($('<div/>').text('</div>'));
178 $html.fadeIn(); 180 $html.fadeIn();
179 } 181 }
180 }; 182 };
181 183
182 // store a region div 184 // store a region div
237 239
238 // create regions from HTML 240 // create regions from HTML
239 var createRegionsFromHTML = function (data) { 241 var createRegionsFromHTML = function (data) {
240 var regions = data.regions; 242 var regions = data.regions;
241 var selector = data.settings.regionContentSelector; 243 var selector = data.settings.regionContentSelector;
242 var $content = data.$elem.find(selector); 244 var $content = data.$elem.contents(selector).contents('a');
243 console.debug("createRegionsFromHTML", $content); 245 console.debug("createRegionsFromHTML", $content);
244 $content.each(function(index, elem) { 246 $content.each(function(index, a) {
245 var $div = $(elem); 247 var $a = $(a);
246 var title = $div.attr('title'); 248 var href = $a.attr('href');
247 var r = title.replace(/^area=/i, ''); 249 var rel = $a.attr('rel');
248 var pos = r.split("/", 4); 250 var area = rel.replace(/^area:/i, '');
251 var pos = area.split("/", 4);
249 var rect = geom.rectangle(pos[0], pos[1], pos[2], pos[3]); 252 var rect = geom.rectangle(pos[0], pos[1], pos[2], pos[3]);
250 regions.push(rect); 253 regions.push(rect);
251 var $regionDiv = createRegionDiv(regions, index); 254 var $regionDiv = createRegionDiv(regions, index);
252 $regionDiv.append($div); 255 $regionDiv.append($a.clone());
253 $div.show(); 256 // $a.show();
254 }); 257 });
255 }; 258 };
256 259
257 // show a region on top of the scaler image 260 // show a region on top of the scaler image
258 var showRegionDiv = function (data, index, anim) { 261 var showRegionDiv = function (data, index, anim) {
408 }; 411 };
409 412
410 // plugin initialization 413 // plugin initialization
411 var init = function (data) { 414 var init = function (data) {
412 console.debug('initialising regions plugin. data:', data); 415 console.debug('initialising regions plugin. data:', data);
413 var $data = $(data); 416 var $elem = data.$elem;
414 // regions array 417 // regions array
415 data.regions = []; 418 data.regions = [];
416 // regions HTML div 419 // regions div
417 var $html = $('<div class="keep regionhtml"/>'); 420 var $html = $('<div class="keep regionHTML"/>');
421 $elem.append($html);
418 data.$htmlDiv = $html; 422 data.$htmlDiv = $html;
419 data.$elem.append($html);
420 // no URL-defined regions, no buttons when regions are predefined in HTML 423 // no URL-defined regions, no buttons when regions are predefined in HTML
421 if (!data.settings.includeRegionContent) { 424 var hasRegionContent = data.settings.includeRegionContent;
425 if (!hasRegionContent) {
422 // add "rg" to digilibParamNames 426 // add "rg" to digilibParamNames
423 data.settings.digilibParamNames.push('rg'); 427 data.settings.digilibParamNames.push('rg');
424 // additional buttons 428 // additional buttons
425 var buttonSettings = data.settings.buttonSettings.fullscreen; 429 var buttonSettings = data.settings.buttonSettings.fullscreen;
426 // configure buttons through digilib "regionSet" option 430 // configure buttons through digilib "regionSet" option
430 buttonSettings['regionSet'] = buttonSet; 434 buttonSettings['regionSet'] = buttonSet;
431 buttonSettings.buttonSets.push('regionSet'); 435 buttonSettings.buttonSets.push('regionSet');
432 } 436 }
433 } 437 }
434 // install event handler 438 // install event handler
439 var $data = $(data);
435 $data.bind('setup', handleSetup); 440 $data.bind('setup', handleSetup);
436 $data.bind('update', handleUpdate); 441 $data.bind('update', handleUpdate);
437 $data.bind('redisplay', handleRedisplay); 442 $data.bind('redisplay', handleRedisplay);
438 $data.bind('dragZoom', handleDragZoom); 443 $data.bind('dragZoom', handleDragZoom);
439 }; 444 };