Update onclick slide check to be more flexible.

This commit is contained in:
Oleg Roschupkin 2011-08-01 21:06:35 +09:00
parent 54a2d33367
commit 12fc4747b5
1 changed files with 18 additions and 7 deletions

View File

@ -80,18 +80,29 @@
updateProgress(slide_number); updateProgress(slide_number);
} }
} }
function getContainingSlideId(el) {
var node = el;
while ('BODY' !== node.nodeName) {
if (-1 !== node.className.indexOf('slide')) {
return node.id;
} else {
node = node.parentNode;
}
}
return '';
}
function dispatchSingleSlideMode(e) { function dispatchSingleSlideMode(e) {
if ( var slideId = getContainingSlideId(e.target);
'SECTION' === e.target.nodeName &&
-1 !== e.target.parentNode.parentNode.className.indexOf('slide') && if ('' !== slideId && isSlideListMode()) {
isSlideListMode()
) {
e.preventDefault(); e.preventDefault();
// NOTE: we should update hash to get things work properly // NOTE: we should update hash to get things work properly
url.hash = '#' + e.target.parentNode.parentNode.id; url.hash = '#' + slideId;
history.replaceState(null, null, url.pathname + '?full#' + e.target.parentNode.parentNode.id); history.replaceState(null, null, url.pathname + '?full#' + slideId);
enterSingleSlideMode(); enterSingleSlideMode();
updateProgress(getCurrentSlideNumber()); updateProgress(getCurrentSlideNumber());