diff options
author | Kate Arzamastseva <pshns@ukr.net> | 2011-07-15 00:16:07 +0300 |
---|---|---|
committer | Kate Arzamastseva <pshns@ukr.net> | 2011-07-15 00:16:07 +0300 |
commit | 3dd4a911f6492d9dce2b58bcd44c917489f50301 (patch) | |
tree | 3bae66359cf2957253740e1dac6fae74b0e3cd15 /lib/scripts/tree.js | |
parent | c439558b00bf5429e11461bc999b63a22f066ac1 (diff) | |
parent | 1e542e417725bb148253929fac9146832d978e45 (diff) | |
download | rpg-3dd4a911f6492d9dce2b58bcd44c917489f50301.tar.gz rpg-3dd4a911f6492d9dce2b58bcd44c917489f50301.tar.bz2 |
Merge branch 'master' of git://github.com/splitbrain/dokuwiki into media-revisions
Diffstat (limited to 'lib/scripts/tree.js')
-rw-r--r-- | lib/scripts/tree.js | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/scripts/tree.js b/lib/scripts/tree.js index 46b0f6695..98d3f55d4 100644 --- a/lib/scripts/tree.js +++ b/lib/scripts/tree.js @@ -29,33 +29,34 @@ jQuery.fn.dw_tree = function(overrides) { * @author Pierre Spring <pierre.spring@caillou.ch> */ toggle: function (e) { - var $listitem, $sublist, timeout, $clicky, show_sublist, dw_tree; + var $listitem, $sublist, timeout, $clicky, show_sublist, dw_tree, opening; e.preventDefault(); + dw_tree = e.data; $clicky = jQuery(this); $listitem = $clicky.closest('li'); $sublist = $listitem.find('ul').first(); - dw_tree = e.data; + opening = $listitem.hasClass('closed'); + $listitem.toggleClass('open closed'); + dw_tree.toggle_display($clicky, opening); // if already open, close by hiding the sublist - if ($listitem.hasClass('open')) { - $sublist.dw_hide(function () { - dw_tree.close($clicky); - $listitem.addClass('closed').removeClass('open'); - }); + if (!opening) { + $sublist.dw_hide(); return; } show_sublist = function (data) { - if (!$listitem.hasClass('open') || $sublist.parent().length === 0) { - $listitem.append($sublist).addClass('open').removeClass('closed'); - } $sublist.hide(); - if (data) { + if (typeof data !== 'undefined') { $sublist.html(data); } - $sublist.dw_show(); + if ($listitem.hasClass('open')) { + // Only show if user didn’t close the list since starting + // to load the content + $sublist.dw_show(); + } }; // just show if already loaded @@ -66,6 +67,7 @@ jQuery.fn.dw_tree = function(overrides) { //prepare the new ul $sublist = jQuery('<ul class="idx"/>'); + $listitem.append($sublist); timeout = window.setTimeout( bind(show_sublist, '<li><img src="' + DOKU_BASE + 'lib/images/throbber.gif" alt="loading..." title="loading..." /></li>'), dw_tree.throbber_delay); @@ -76,7 +78,7 @@ jQuery.fn.dw_tree = function(overrides) { }, $clicky); }, - close: function ($clicky) { + toggle_display: function ($clicky, opening) { }, load_data: function (show_data, $clicky) { |