滚动事件不会触发

时间:2016-11-02 12:03:56

标签: aurelia

我遇到滚动绑定问题。我没有运气就尝试使用scroll bindingevent listeners。使用jquery也不起作用。我试过的任何其他事件都按预期工作,但是使用滚动它几乎没有任何效果。没有错误,没有消息..我错过了什么?

修改

好吧我犯了一个错误,并没有把它放在app.js和app.html中,如示例中所提到的那样,但是下面有一层没有滚动事件来捕获元素。如果我把scroll.trigger放在那里就可以了。

新问题: 可以在儿童视图中触发滚动吗?

例如:假设您在2条路线上有2个视图模型,并且您希望一个触发滚动事件而另一个不触发。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

可以检查一下吗? website for detail

答案 1 :(得分:0)

我发现错误导致了我原来的问题 - 这是有问题的描述。

为了回答我的第二个问题,我使用了这个解决方案:

<强> app.html

<div class="page-host" scroll.trigger="handleScrollEvent($event) & debounce:200">
  <router-view></router-view>
</div>

<强> app.js

export class App {

  configureRouter(config, router) {
    config.title = 'Title';

    config.map([
      { route: ['', 'first'], name: 'first', moduleId: './first', nav: true, title: 'First route' },
      { route: ['second'], name: 'second', moduleId: './second', nav: true, title: 'Second route' }
    ]);

    this.router = router;
  }

  handleScrollEvent(e) {

    // if not on specified route
    if(this.router.currentInstruction.config.name !== 'second') {
      return;
    }

    // if scrolled under defined pixels
    if(e.target.scrollTop > 100) {
      $('body').find('#toolbar').addClass('fixed');
    } else {
      $('body').find('#toolbar').removeClass('fixed');
    }

  }

}

我不知道它有多干净但它有效。随意采取其他解决方案。