解決済み

jQueryの関数内の変数について教えてください

  • すぐに回答を!
  • 質問No.7953262
  • 閲覧数1030
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 90% (29/32)

jQueryで外部の関数の中にある変数の値の取得方法について教えてください。

文法等全く分かっていない、初心者で大変恐縮しております。

外部にある変数の値を取得し、その値を必要な変数に代入したいと思っております。

下記に大まかなコードを記述いたしました。
サイトを開いた時に「mLivre」を実行し、リサイズ処理をした時に
もう一度「mLivre」を実行しております。
「var mLivre」内にある数値を、「jQuery(window).resize」の中の
「 jQuery.fn.mLivre」の中にある変数に代入しようと思っております。

私のやりたいことは、「mLivre」というプラグイン(下記※参考サイト)を
レスポンシブにしたいと思っております。
「mLivre」は画像を本の様にめくってくれるスクリプトです。
下記のコードの流れで、ブラウザサイズに合わせて表示の大きさを
変えることができましたが、リサイズするごとに初期化され
ページが1ページ目からになってしまうので、
リサイズ後も変わらないページで表示させたいと思っております。

※参考サイト
http://coliss.com/articles/build-websites/operation/javascript/jquery-plugin-mlivre.html

全くの初心者で大変恐縮しておりますが、
ご享受いただけたらと思います。
また、記述についてもご指摘いらだけたら幸いです。

宜しくお願いいたします。

-------ソースコード----------
//実行外部ファイル
jQuery('#slide').mLivre({
});

//コアファイル
(function(jQuery) {
jQuery.fn.mLivre = function(options,num) {
};

jQuery(window).resize(function(){
var mLivre={
//ここにある変数の値を取得してリサイズ内の jQuery.fn.mLivreに渡したい。
}
jQuery.fn.mLivre = function(options,num) {
//この中の変数に代入したい
};

jQuery('#slide').mLivre({  //リサイズ後の実行部
})
;
});
})(jQuery);

var mLivre={
//ここにある変数の値を取得してリサイズ内の jQuery.fn.mLivreに渡したい。
}

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 61% (1594/2576)

内容は見ていませんが…


>外部にある変数の値を取得し、その値を必要な変数に代入したいと思っております。
関数内での変数の定義のされかたによって、その外側から参照できる場合とできない場合があります。
ライブラリとして作られているものは、たいていの場合、作者が意図的に参照可能にしていない限り、そのままでは関数外からは取得できないと想像します。

>文法等全く分かっていない、初心者で大変恐縮しております。
カスタマイズするおつもりなら、まずそのあたりを理解しておくほうがよろしいでしょう。
http://builder.japan.zdnet.com/script/sp_javascript-kickstart-2007/20373861/
http://archiva.jp/web/javascript/variable_and_scope.html


具体的に参照を可能にする方法としては、
 ・関数呼び出しの際に、引数や返り値として受け渡す。
 ・両方を包含する関数内の変数、あるいはグローバルな変数として定義し直す。
 ・参照可能なオブジェクトなどであれば、そのプロパティとして定義し直す。
  または、get○○のようなメソッドを追加して、値を参照可能にする。
などが考えられそうな気がします。

いずれにしろ、まずは、もとのライブラリの全体構成を把握する必要があるでしょう。
お礼コメント
tsyok

お礼率 90% (29/32)

fujillinさま

いつもご回答ありがとうございます。
(お礼が遅くなり大変申し訳ございません)

出来ました。
fujillinさまのおかげです!
本当にありがとうございます。

簡単な要約のコードです。
※無理やり動かしている形ですが…

-------コアファイル部----------
//コアファイル
(function(jQuery) {
jQuery.fn.mLivre = function(options,num) {
};

jQuery(window).resize(function(){
var mLivre={

if (lien=='mLivreLienGauche') { //このあたりで下記のコードで値を取得

pagec = mLivre.donne[idDonne].page; //これで取得

}
jQuery.fn.mLivre = function(options,num) {
};

jQuery('#slide').mLivre({  //リサイズ後の実行部
//取得した値をオプションに代入
pageDefault:pagec,
})
;
});
})(jQuery);

var mLivre={

if (lien=='mLivreLienGauche') { //このあたりで下記のコードで値を取得

pagec = mLivre.donne[idDonne].page; //これで取得

}
投稿日時 - 2013-02-24 21:45:55
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ