如何在基于URL的聚合物元素上执行select()方法?

时间:2015-12-17 21:22:49

标签: javascript html css polymer paper-elements

我有一个带链接的纸质菜单

<paper-menu>
  <a href="/home">Home</a>
  <a href="/about">About</a>
</paper-menu>

当我点击任何链接时,Polymer会向其添加.iron选择的CSS类,但如果发生页面重新加载或页面重定向,我将失去CSS类。

我的问题是:如何根据URL添加该类?

2 个答案:

答案 0 :(得分:1)

您可以看到一个有效的示例here

当您转到“cekuda”页面时,选择了cekuda菜单项, 当您转到“jegano”页面时,会选择jegano菜单项。

  • 使用全局变量“location”检查页面的URL。
  • 在尝试对纸张菜单执行任何操作之前,请等待“WebComponentsReady”事件触发。
  • 通过paper-menu.items
  • 分析纸质菜单中的儿童
  • 使用paper-menu.select
  • 将类添加到要选择的元素

答案 1 :(得分:1)

感谢Ryan提示!

我的解决方案是:

document.addEventListener('WebComponentsReady', function(){
    var menu = document.querySelector('paper-menu')
    var paths = menu.items.map(function(item){
        return item.pathname
    })
    window.setInterval(function () {
        menu.select(paths.indexOf(location.pathname))
    }, 100);
})