前提・実現したいこと
複数タブでデータの一覧を表示しているページで、
一覧データのソートを行えなくなる事象が発生しており、対処方法がわからない状態です。
対象のページは、初期表示時に、各タブで表示するデータとして、
javascriptにてタブ別のテキストファイルを読み取り、テーブルを作成して表示しています。
表示しているデータ一覧の絞り込みを行う必要があるのですが、
絞り込み対象が、最初に表示されるデータ一覧なってしまうため、タブ切り替え時に、thisのIDを書き換えています。
タブ切り替えは下記のように、タブ押下時、thisのIDを各タブのIDに書き換えています。
tabClick: function() { var _this = this; $("#tabA").click(function(){ _this.id = "tabAList"; }); $("#tabB").click(function(){ _this.id = "tabBList"; }); $("#tabC").click(function(){ _this.id = "tabCList"; }); });
ソート時は、ソートボタン押下時、thisのidを元にソート処理の呼び出しを行っています。
setSort: function() { var _this = this; $("#nameSortAsc" + _this.id).click(function() { _this.sortChange(_this.id); }); $("#nameSortDesc" + _this.id).click(function() { _this.sortChange(_this.id); }); $("#priceSortAsc" + _this.id).click(function() { _this.sortChange(_this.id); }); $("#priceSortDesc" + _this.id).click(function() { _this.sortChange(_this.id); }); });
発生している問題・エラーメッセージ
1、Aタブでソート
2、Bタブに切り替えてでソート
3、Aタブに戻ってソートするとソートが利かなくなっています。
F12開発ツールにて、操作時の状態を確認したところ、
thisのIDが前タブのIDとなっていたため、ソートが利かなくなってしまったのたと考えています。
1、ソート時のthis.id は tabAList
2、ソート時のthis.id は tabBList
3、ソート時のthis.id は tabBList
上記事象が起きてしまう原因がわからず、どう対処してよいのかわからない状態です。
絞り込みを行うためには、_this.id = "tabAList";のように、IDを書き換える必要があると考えているのですが、
あまりお勧めできないやり方なのでしょうか。
解決方法、または別の方法を教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。