单击按钮更改 iron-pages 选定值
Change iron-pages selected value on button click
我正在使用 Polymer Starter Kit 作为这个项目的基础。
我正在尝试制作两个按钮,将用户带到 iron-page 元素内的下一页和上一页。
<iron-pages selected="0">
<div>
<paper-material elevation="1">
<paper-radio-group class="layout vertical" selected="1">
<paper-radio-button name="1">1</paper-radio-button>
<paper-radio-button name="2">2</paper-radio-button>
<paper-radio-button name="3">3</paper-radio-button>
</paper-radio-group>
</paper-material>
<div class="horizontal justified layout">
<div>
<paper-button raised>Previous</paper-button>
</div>
<div>
<paper-button raised>Next</paper-button>
</div>
</div>
</div>
<div>Page 2</div>
<div>Page 3</div>
</iron-pages>
可能值得注意的是,此铁页元素位于初学者工具包用于处理菜单项的铁页元素内。
我尝试了很多方法来完成这项工作。我尝试将 div 更改为 "sections" 并使用入门工具包用于带有数据路由的菜单的相同方法,但我无法让它工作。我还尝试在脚本文件中创建一个函数来侦听单击事件,但它在错误的 iron-page 元素中更改了页面。它跳转到菜单中的下一页。
是否可以让 "Next" 按钮以某种方式将所选值更改为“2”?
这里是你如何做到的。
为您的 iron-pages 组件和按钮指定一个 ID,以便以后轻松找到它们。
<iron-pages id="pages" selected="0">
<paper-button raised id="next">Next</paper-button>
定义事件处理程序并通过 id 引用 iron-pages。然后你可以设置 selected
为你想跳转到的页码(从 0 开始)或调用 selectedNext()
跳转到下一页。
<script>
var pages = document.querySelector("#pages");
var next = document.querySelector("#next");
next.addEventListener("click", function(){
// choose an option here
pages.selectNext();
pages.selected = 2;
pages.selected = pages.selected +1;
});
</script>
编辑
如果您使用的是初学者工具包的结构,您可以尝试将按钮单击处理程序添加到 dom-change
回调中。
app.addEventListener('dom-change', function() {
console.log('Our app is ready to rock!');
var pages = document.querySelector("#pages");
var next = document.querySelector("#next");
next.addEventListener("click", function(){
// choose an option here
pages.selectNext();
pages.selected = 2;
pages.selected = pages.selected +1;
});
});
初学者工具包使用 page.js 进行路由。另一种选择是添加到新页面的路由,然后调用 page.show(relative-url-to-new-page)。通过url传递参数没有问题。它还适用于浏览器历史记录。
我正在使用 Polymer Starter Kit 作为这个项目的基础。
我正在尝试制作两个按钮,将用户带到 iron-page 元素内的下一页和上一页。
<iron-pages selected="0">
<div>
<paper-material elevation="1">
<paper-radio-group class="layout vertical" selected="1">
<paper-radio-button name="1">1</paper-radio-button>
<paper-radio-button name="2">2</paper-radio-button>
<paper-radio-button name="3">3</paper-radio-button>
</paper-radio-group>
</paper-material>
<div class="horizontal justified layout">
<div>
<paper-button raised>Previous</paper-button>
</div>
<div>
<paper-button raised>Next</paper-button>
</div>
</div>
</div>
<div>Page 2</div>
<div>Page 3</div>
</iron-pages>
可能值得注意的是,此铁页元素位于初学者工具包用于处理菜单项的铁页元素内。
我尝试了很多方法来完成这项工作。我尝试将 div 更改为 "sections" 并使用入门工具包用于带有数据路由的菜单的相同方法,但我无法让它工作。我还尝试在脚本文件中创建一个函数来侦听单击事件,但它在错误的 iron-page 元素中更改了页面。它跳转到菜单中的下一页。
是否可以让 "Next" 按钮以某种方式将所选值更改为“2”?
这里是你如何做到的。 为您的 iron-pages 组件和按钮指定一个 ID,以便以后轻松找到它们。
<iron-pages id="pages" selected="0">
<paper-button raised id="next">Next</paper-button>
定义事件处理程序并通过 id 引用 iron-pages。然后你可以设置 selected
为你想跳转到的页码(从 0 开始)或调用 selectedNext()
跳转到下一页。
<script>
var pages = document.querySelector("#pages");
var next = document.querySelector("#next");
next.addEventListener("click", function(){
// choose an option here
pages.selectNext();
pages.selected = 2;
pages.selected = pages.selected +1;
});
</script>
编辑
如果您使用的是初学者工具包的结构,您可以尝试将按钮单击处理程序添加到 dom-change
回调中。
app.addEventListener('dom-change', function() {
console.log('Our app is ready to rock!');
var pages = document.querySelector("#pages");
var next = document.querySelector("#next");
next.addEventListener("click", function(){
// choose an option here
pages.selectNext();
pages.selected = 2;
pages.selected = pages.selected +1;
});
});
初学者工具包使用 page.js 进行路由。另一种选择是添加到新页面的路由,然后调用 page.show(relative-url-to-new-page)。通过url传递参数没有问题。它还适用于浏览器历史记录。