diff --git a/CHANGELOG.md b/CHANGELOG.md index 82be994f1141420bf93643620bc1b650ce9e243d..ec16adb9e465022b24a49911a32d0f0a683a1602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ __Sticky__: - `NEW` 增加 `media` 选项,可以设置 Media Query; - `NEW` 增加 `bottom` 选项。 +__ScrollSpyNav__: + +- `FIXED` 链接点击失效问题。 + __Popover__: - `IMPROVED` 每次打开时重新计算弹出层的位置,减少位置偏移问题; diff --git a/docs/javascript/dropdown.md b/docs/javascript/dropdown.md index e231edfeb67782ff6469d72d79aae07e6c6ce59a..2d694c38628cae5c2fd62e35e356e25933a11789 100644 --- a/docs/javascript/dropdown.md +++ b/docs/javascript/dropdown.md @@ -193,17 +193,25 @@ $(function() { var $dropdown = $('#doc-dropdown-js'), data = $dropdown.data('amui.dropdown'); + + function scrollToDropdown() { + $(window).smoothScroll({position: $dropdown.offset().top}); + } + $('#doc-dropdown-toggle').on('click', function(e) { + scrollToDropdown(); $dropdown.dropdown('toggle'); return false; }); $('#doc-dropdown-open').on('click', function(e) { + scrollToDropdown(); data.active ? alert('已经打开了,施主又何必再纠缠呢!') : $dropdown.dropdown('open'); return false; }); $('#doc-dropdown-close').on('click', function(e) { + scrollToDropdown(); data.active ? $dropdown.dropdown('close') : alert('没有开哪有关,没有失哪有得!'); return false; }); diff --git a/js/ui.scrollspynav.js b/js/ui.scrollspynav.js index 73bf10f07f37007728f68a2083d8dc7aa322fe51..734014ef28732aae6890749334384b20b0f3152c 100755 --- a/js/ui.scrollspynav.js +++ b/js/ui.scrollspynav.js @@ -1,8 +1,7 @@ define(function(require, exports, module) { - 'use strict'; - require('core'); + require('ui.smooth-scroll'); var $ = window.Zepto, UI = $.AMUI; @@ -33,7 +32,7 @@ define(function(require, exports, module) { this.$window = $(window).on('scroll.scrollspynav.amui', processRAF) .on('resize.scrollspynav.amui orientationchange.scrollspynav.amui', UI.utils.debounce(processRAF, 50)); - processRAF(); + processRAF(); this.scrollProcess(); }; @@ -91,18 +90,15 @@ define(function(require, exports, module) { // smoothScroll if (this.options.smooth) { - require.async(['ui.smooth-scroll'], function() { - $links.on('click', function(e) { - e.preventDefault(); + $links.on('click', function(e) { + e.preventDefault(); - var $this = $(this), - target = $this.attr('href'), - position = $this.data('am.smoothScroll'); + var $this = $(this), + $target = $($this.attr('href')); - !position && $this.data('am.smoothScroll', (position = $(target).offset().top)); + if (!$target) return; - $(window).smoothScroll(position); - }); + $(window).smoothScroll({position: $target.offset().top}); }); } };