###前提・実現したいこと
単語帳アプリを開発しています。
ons-splitterでページ遷移を行うのですが、教科のページを移動するたびに登録した単語がリセットされます。
そのためデータを保存する必要があり、Google先生にも頼ったのですがイマイチ分からず...
<div>子要素</div>のような場合に、子要素(ons-list-item)をまとめて保存したりできるのでしょうか?
###発生している問題・エラーメッセージ
データをどのような形でも保存したい。
###該当のソースコード
```html
<!-- スプリッター -->
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
<ons-toolbar>
<label class="center">教科選択</label>
</ons-toolbar>
<ons-list>
<ons-list-item class="subject hi" onclick="fn.load('history.html')" tappable>
前回の記録
</ons-list-item>
<ons-list-item class="subject ja" onclick="fn.load('japanese.html')" tappable>
国語
</ons-list-item>
<ons-list-item class="subject math" onclick="fn.load('math.html')" tappable>
数学
</ons-list-item>
<ons-list-item class="subject en" onclick="fn.load('english.html')" tappable>
英語
</ons-list-item>
</ons-list>
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="history.html"></ons-splitter-content>
</ons-splitter>
<!-- ダイアログ -->
<ons-template id="dialog1.html">
<ons-dialog id="dialog1" cancelable>
<ons-toolbar inline>
<label class="center">追加</label>
<div class="right">
<ons-toolbar-button modifier="quiet" onclick="hidedlg1()">
完了
</ons-toolbar-button>
</div>
</ons-toolbar>
<div style="text-align: center">
<p>
<ons-input id="dlg1_input" modifier="underbar" placeholder="単元名"></ons-input>
</p>
</div>
</ons-dialog>
</ons-template>
```
```html
<!-- 教科別のページ -->
<ons-page>
<ons-toolbar>
<div class="left">
<ons-toolbar-button onclick="fn.open()">
<ons-icon icon="ion-navicon, material:md-menu"></ons-icon>
</ons-toolbar-button>
</div>
<div class="right">
<ons-toolbar-button class="addbtn1" id="xx_btn1" onclick="showdlg1()">
<ons-icon icon="ion-plus"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center">
教科名
</div>
</ons-toolbar>
<ons-list id="xx_list1">
</ons-list>
</ons-page>
<!-- コード中の xx の部分は "ja","math","en" の3つ -->
```
```javascript
/* スプリッターの制御*/
ons.ready(function() {
console.log("Onsen UI is ready!");
});
window.fn = {};
window.fn.open = function() {
var menu = document.getElementById('menu');
menu.open();
};
window.fn.load = function(page) {
var content = document.getElementById('content');
var menu = document.getElementById('menu');
content
.load(page)
.then(menu.close.bind(menu));
};
/* ダイアログ関連の動作もろもろ*/
ons.ready(function() {
});
function showdlg1() {
/* 教科のid要素を取得します*/
var idname = $('.addbtn1').attr("id");
var subject = "";
if(idname == 'ja_btn1') {
subject = 'ja';
}
else if(idname == 'math_btn1') {
subject = 'math';
}
else if(idname == 'en_btn1') {
subject = 'en';
};
sessionStorage.setItem('test', subject);
/* ダイアログを表示します*/
var dialog1 = document.getElementById('dialog1');
if(dialog1) {
dialog1.show();
}
else {
ons.createDialog('dialog1.html').then(function(dialog1) {
dialog1.show();
});
};
}
function hidedlg1() {
/* htmlに新しいリストを追加します*/
var value = $('#dlg1_input').val();
if(!value) {
alert("なにか入力してください");
return;
};
var subject = sessionStorage.getItem('test');
var idname = subject+'list1';
var classname = 'subject '+subject;
var size = $('#'+idname).children('ons-list-item').length;
var itemHTML =
'<ons-list-item id="'+subject+''+size+'" class="subject '+subject+'" modifier="chevron" name="'+subject+'_"'+size+'">' +
value +
'</ons-list-item>';
$('#'+idname).prepend(itemHTML);
/* ダイアログを非表示にします*/
dialog1.hide();
$('#dlg1_input').val("");
};
###試したこと
丸投げ状態ですが、誰も頼る人がいないのです...
###補足情報(言語/FW/ツール等のバージョンなど)
Monaca,Onsen UI,JavaScript,jQuery
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/21 22:15