diff options
author | Jed Foster <jed@jedfoster.com> | 2013-07-24 20:46:09 -0700 |
---|---|---|
committer | Jed Foster <jed@jedfoster.com> | 2013-07-24 20:46:09 -0700 |
commit | f7dfa6a9450ff9f9ddffdd41aa900dbbb93400aa (patch) | |
tree | 913a177515ddf26f3d03e976a98bc7d0a945fc91 | |
parent | e6e5e6cd62b4e1d61a09e57d3091e248cdd20740 (diff) | |
download | Readmore.js-f7dfa6a9450ff9f9ddffdd41aa900dbbb93400aa.zip Readmore.js-f7dfa6a9450ff9f9ddffdd41aa900dbbb93400aa.tar.gz Readmore.js-f7dfa6a9450ff9f9ddffdd41aa900dbbb93400aa.tar.bz2 |
Refactor open/close methods as toggle
-rw-r--r-- | readmore.js | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/readmore.js b/readmore.js index e606f25..173a615 100644 --- a/readmore.js +++ b/readmore.js @@ -46,7 +46,7 @@ return true; } else { - current.after($($this.options.moreLink).on('click', function(event) { $this.openSlider(this, current, event) })); + current.after($($this.options.moreLink).on('click', function(event) { $this.toggleSlider(this, current, event) })); } sliderHeight = maxHeight; @@ -55,27 +55,26 @@ }); }, - openSlider: function(trigger, element, event) + toggleSlider: function(trigger, element, event) { event.preventDefault(); var $this = this, - open_height = $(element).data().boxHeight + "px"; + newHeight = newLink = ''; - $(element).animate({"height": open_height}, {duration: $this.options.speed }); + if ($(element).height() == sliderHeight) { + newHeight = $(element).data().boxHeight + "px"; + newLink = 'lessLink'; + } - $(trigger).replaceWith($($this.options.lessLink).on('click', function(event) { $this.closeSlider(this, element, event) })); - }, - - closeSlider: function(trigger, element, event) - { - event.preventDefault(); - - var $this = this; + else { + newHeight = sliderHeight; + newLink = 'moreLink'; + } - $(element).animate({"height": sliderHeight}, {duration: $this.options.speed }); + $(element).animate({"height": newHeight}, {duration: $this.options.speed }); - $(trigger).replaceWith($($this.options.moreLink).on('click', function(event) { $this.openSlider(this, element, event) })); + $(trigger).replaceWith($($this.options[newLink]).on('click', function(event) { $this.toggleSlider(this, element, event) })); } }; @@ -96,4 +95,4 @@ }); } } -})(jQuery);
\ No newline at end of file +})(jQuery); |