回答編集履歴

1

改善

2022/10/26 11:02

投稿

CODEMAN
CODEMAN

スコア56

test CHANGED
@@ -1,20 +1,72 @@
1
- [ons-back-button 実例コード](https://ja.onsen.io/v2/api/js/ons-back-button.html#tutorial)の断片
1
+ [ons-back-button 実例コード](https://ja.onsen.io/v2/api/js/ons-back-button.html#tutorial)
2
+ ```html
3
+ <!DOCTYPE html>
4
+ <html lang="ja">
5
+ <head>
6
+ <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsenui.css">
7
+ <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsen-css-components.min.css">
8
+ <script src="https://unpkg.com/onsenui/js/onsenui.min.js"></script>
2
- ```JavaScript
9
+ <script>
10
+ document.addEventListener('init', function(event) {
11
+ var page = event.target;
12
+
13
+ if (page.id === 'page1') {
14
+ page.querySelector('#push-button').onclick = function() {
15
+ document.querySelector('#myNavigator').pushPage('page2.html', {
16
+ data: {
17
+ title: 'Page 2'
18
+ }
19
+ });
20
+ };
21
+ } //...略
22
+ else if (page.id === 'page2') {
23
+ page.querySelector('ons-toolbar .center').innerHTML = page.data.title;
24
+ // ここから
25
+ var backButton = page.querySelector('ons-back-button');
26
+ backButton.options = {
27
+ callback: function() {
28
+ var page1 = document.querySelector('#page1'); // 前に戻る処理(slide)完了後#page1の
29
+ var page1Paragraph = page1.querySelector('p'); // 子孫 p 要素の
30
+ page1Paragraph.textContent = this.hoge; // textContentプロパティに自前のプロパティ代入
31
+ },
32
+ animation: 'slide', // “slide”, “lift”, “fade” and “none”
33
+ hoge: 'ほげほげ' // 自前のプロパティ
34
+ };
35
+ /* // page2の戻るボタン(ons-back-button要素)をClickしたタイミングで
36
+ var page2 = document.querySelector('#page2');
37
+ var backButton = page2.querySelector('ons-back-button');
38
+ backButton.onClick = function (event) { console.log(this); };
39
+ // backButton.addEventListener('click', function (event) {console.log(this); event.preventDefault(); });
40
+ */
41
+ }
3
- //...略
42
+ //...略
4
- else if (page.id === 'page2') {
5
- page.querySelector('ons-toolbar .center').innerHTML = page.data.title;
6
- // ここから
7
- var backButton = page.querySelector('ons-back-button');
8
- backButton.options = {
9
- callback: function () {
10
- var page1Center = document.querySelector('#page1 .center');
11
- page1Center.textContent = this.hoge + ' から戻って来たぜ!';
12
- },
13
- animation: 'fade', // デフォルト 'slide'
14
- hoge: page.data.title // 自前のプロパティ
15
- };
43
+ });
44
+ </script>
45
+ </head>
16
- }
46
+ <body>
47
+ <ons-navigator swipeable id="myNavigator" page="page1.html"></ons-navigator>
48
+ <template id="page1.html">
49
+ <ons-page id="page1">
50
+ <ons-toolbar>
51
+ <div class="center">Page 1</div>
52
+ </ons-toolbar>
53
+ <p>This is the first page.</p>
54
+ <ons-button id="push-button">Push page</ons-button>
55
+ </ons-page>
56
+ </template>
57
+ <template id="page2.html">
58
+ <ons-page id="page2">
59
+ <ons-toolbar>
60
+ <div class="left">
61
+ <ons-back-button>Page 1</ons-back-button>
17
- //...略
62
+ </div>
63
+ <div class="center"></div>
64
+ </ons-toolbar>
65
+ <p>This is the second page.</p>
66
+ </ons-page>
67
+ </template>
68
+ </body>
69
+ </html>
18
70
  ```
19
71
  ons-back-buttonの[optionsプロパティ](https://ja.onsen.io/v2/api/js/ons-back-button.html#properties)に任意のオブジェクトを渡す例です
20
72