diff --git a/README.md b/README.md index 827cfdf..f9775b4 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,11 @@ Vlastní extensions pro nette.ajax ## Changelog +### 1.2.3 +- oprava chyby `scrollTo` extension, kdy: + - nebylo možno nastavit přes data atribut offset na 0 + - došlo k JS chybě, pokud nebyl `settings.nette.el` + ### 1.2.2 - extension `scrollTo` je přepsané pro lepší použití uvnitř otevřeného pdboxu a je více modifikovatelné: - přidán nastavení pro scroll offset (výchozí hodnota je 0): diff --git a/extensions/scrollTo.ajax.js b/extensions/scrollTo.ajax.js index ab518fe..a48afb5 100644 --- a/extensions/scrollTo.ajax.js +++ b/extensions/scrollTo.ajax.js @@ -26,20 +26,25 @@ duration: 400, defaultEvent: 'before', checkScroll: function (settings, event) { - var scrollEvent = $(settings.nette.el).data('scrollToEvent'); - if (scrollEvent === event || (! scrollEvent && event === this.defaultEvent)) { - this.doScroll(settings); + if ('nette' in settings && settings.nette.el) { + var $clickedEl = $(settings.nette.el); + var scrollEvent = $clickedEl.data('scrollToEvent'); + + if (scrollEvent === event || (! scrollEvent && event === this.defaultEvent)) { + this.doScroll(settings, $clickedEl); + } } }, - doScroll: function (settings) { - if ((scrollToEl = (settings.nette !== undefined) ? settings.nette.el.data('scrollTo') : false) && $(scrollToEl).length) { - var ext = this; - var offset = $(settings.nette.el).data('scrollToOffset') || ext.offset; + doScroll: function (settings, $clickedEl) { + var dataOffset = $clickedEl.data('scrollToOffset'); + var offset = (dataOffset !== undefined) ? dataOffset : this.offset; + var $scrollToEl = $( $clickedEl.data('scrollTo') ); + if ($scrollToEl.length) { // v pdboxu nelze scrollovat s documentem (zbytečné), ale je potřeba posunout samotný scroll pd-box-window if (this.pdbox && this.pdbox.isOpen) { var $pdbox = this.pdbox.window.elem; - var top = $pdbox.scrollTop() + $(scrollToEl).offset().top - $pdbox.offset().top - offset; + var top = $pdbox.scrollTop() + $scrollToEl.offset().top - $pdbox.offset().top - offset; $pdbox.stop().animate({ scrollTop: top @@ -47,7 +52,7 @@ } else { $('html, body').stop().animate({ - scrollTop: $(scrollToEl).offset().top - offset + scrollTop: $scrollToEl.offset().top - offset }, this.duration); } } diff --git a/package.json b/package.json index d46d17c..b3d060d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "pd.ajax", "title": "pd.ajax", "description": "Collection of nette ajax extensions, including `pd` for creating disabled-by-deafult extensions", - "version": "1.2.2", + "version": "1.2.3", "author": "PeckaDesign, s.r.o ", "contributors": [ "Radek Šerý ",