jqueryを使ってthisを使った変数を宣言し、
その変数をスコープ外で使うとエラーが発生しますが、これを解消する方法ってありますでしょうか。
javascript
1 $(document).on('click', '.other-list', function(){ 2 var reviewListTitle = $(this).text(); 3 var reviewListTitleIndex = $(this).index(); 4 page3.navi.pushPage('other-review-list-page.html'); 5 } 6 $(document).on('pageinit', '#other-review-list-page', function(){ 7 $('#review-grouptitle').text(reviewListTitle); 8 $('#other-review-contents-wrapper ons-list').empty(); 9 var reviewContentsArray = (reviewListTitleIndex == 0)? compulsoryReview: 10 (reviewListTitleIndex == 1)? compulsoryChooseReview: 11 (reviewListTitleIndex == 2)? generalEducationReview: 12 (reviewListTitleIndex == 3)? labReview:null; 13 }
イメージとしては上のように、thisを使った変数reviewListTitleを他の場所でも使いたいのですが、$(document).on(){}の外に出ると使えなくなります。
またthisを使うので、$(document).on(){}の外で宣言してグローバル変数にすることもできません。
また、varなしで宣言すると「not defined」というエラーが出ます。
どうにもならないので、無理やり以下のようにしていました。
javascript
1 $(document).on('click', '.other-list', function(){ 2 var reviewListTitle = $(this).text(); 3 var reviewListTitleIndex = $(this).index(); 4 page3.navi.pushPage('other-review-list-page.html'); 5 $(document).on('pageinit', '#other-review-list-page', function(){ 6 $('#review-grouptitle').text(reviewListTitle); 7 $('#other-review-contents-wrapper ons-list').empty(); 8 9 var reviewContentsArray = (reviewListTitleIndex == 0)? compulsoryReview: 10 (reviewListTitleIndex == 1)? compulsoryChooseReview: 11 (reviewListTitleIndex == 2)? generalEducationReview: 12 (reviewListTitleIndex == 3)? labReview:null; 13 } 14 } 15 }
最初は良かったのですが、ここでは端折っていますがこの入れ子が重なることで他のエラーが発生しました。
何か解決策はないでしょうか。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/04/30 12:46