• ベストアンサー

これを簡潔に書く方法はありますか?

今、なるべくコードを簡潔に書けるように勉強中です。 下記のコードなのですが、 これを簡潔に書く方法はありますか? よろしくお願い致します。 $(window).load(function() { adjStyleW($(this).width()); adjStyleH($(this).height()); });

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

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

adjStyleW($(this).width()); adjStyleH($(this).height()); を adjStyle($(this).width(),$(this).height()); にすれば簡にはなるんじゃないでしょうか でも潔ではないですね ライブラリを使っているせいもありますがわかりにくいです 最低自分が1年後とかに見てもパットわかるコードだといいですね 例えばですけど $(window).load(function() { //formの大きさを調整 var winWidth = $(this).width(); var winHeight = $(this).height(); adjFormSize(winWidth,winHeight); }); コード量が増えてもこんな感じをより簡潔と言うのではないでしょうか もしくはスペースを沢山入れてわかりやすくするとか。 エディタと構成によってはadjustFormSizeByWindowSize()くらいやっても平気かもしれません まあでも $(window).load(function(){t=$(this),adjStyleW($(t.width()),adjStyleH(t.height())}) が一番簡潔だと思う人もいるかもしれませんからね 個人的に書く分には好みでいいと思います

toggle
質問者

お礼

最高です。 とてもとても参考になります。 少しでもレベルが上がるよう日々勉強致します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

いや関数だろうなぁってのは理解していましたが どういう処理をさせたいのか書かれていないと 縦横サイズ渡してどうすんの?って回答が付けられません 単純に縮小したいのなら 関数一つにして引数を二つ渡してやれば良いんじゃないですかね?

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

adjStyleW これはなに?

toggle
質問者

補足

説明不足でスイマセン。 function adjStyleW(width) { /*内容*/ } function adjStyleH(height) { /*内容*/ } $(window).load(function() { adjStyleW($(this).width()); adjStyleH($(this).height()); }); という風にしています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • jqueryでdata-の画像サイズの取得方法

    通常の場合、 <img src="hoge.png" /> $("img").on("load",function(){ var w = $(this).width(); var h = $(this).height(); $(this).css({"width":w +"px", "height":h +"px"}); }); でサイズは取得できますが、 <img src="hoge.png" data-src="hoge2.png" /> の場合でhoge2.pngの画像サイズを取得する方法を探しています。 分かる方がいらしたら教えてください。 よろしくお願いします。

  • PHPの読解お願いいたします クラスについて

    独学でPHPを学んでます。 環境:XAMPPにて1.7.0でアパッチなど一括ダウンロード クラスについておおまかな概念は分かりますが、細かな点が多々わかりません。 下記コードをまずご覧ください。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <html> <head> <title> </title> </head> <body> <?php $test=new Figure(3,4); print "三角形の面積は"; print $test->getarea();● print "となります"; class Figure{ protected $width; △ protected $height;△ function __construct($width,$height){ $this->width=$width; $this->height=$height; } function getarea(){ return $this->width * $this->height;●● } } </table> </body> </html> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ まず私の解釈ですが、 コンストラクターでオブジェクトが作成される $width $heightにそれぞれ、3と4が格納。 クラス内ではメンバ変数を$thisであらわす必要性があることから、$widthと$heightをそれぞれ$this->width $this->heightにする。 ●で$test->getarea()を呼んでいるので●●の部分の計算が行われ、その値を再度$test->getarea()に返す。 以上になりますが、なぜかエラーが出ます。 どこに誤りがありますでしょうか。 また●の部分 $test->getarea()ですが、これは関数呼び出し文とはまた別のものなのでしょうか。もし関数呼び出し文であるなら、print表記は必要ないとは思うのです。また関数呼び出し文は文字列ではないので、""は必要はないとの理解でよろしいでしょうか。 さらに△の二行につき、このコード上での存在意義とはなんでしょうか。 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 小ウインドウのスクロールバー

    小さいウインドウを出してメニューを作ろうと思っています そこで、早速作ってみたところ、小さいウインドウにはスクロールバーがありませんでした 小ウインドウには、スクロールバーは表示できないのでしょうか? 表示させる方法がありましたら、教えて下さい ちなみに、小ウインドウは下記のようにしています <SCRIPT LANGUAGE="JavaScript"> <!-- function subopen(){ subwin=window.open("menu.html","subwindow","width=290,height=185") } function subclose(){ subwin=window.open("","subwindow","width=290,height=185") subwin.close() } // --> </SCRIPT>

  • ページのエラー

    始めまして 任意大きさのウインドウをたち上げる際 (ブラウザ上で) どうしても、「表示されました。」の横に ビックリマーク「!」が出て 暫くすると、ページエラーと表されます。 任意のウインドウは正常に表示されます。 色々と調べましたが、どうも私のスキルでは 限界です。 <HEAD> <SCRIPT LANGUAGE="JavaScript"> function openWindow1() { window.open("***.htm","window1","WIDTH=300,HEIGHT=310"); } function openWindow2() { window.open("***.htm","window2","WIDTH=300,HEIGHT=310"); } function openWindow3() { window.open("***.htm","window3","WIDTH=300,HEIGHT=310; } </SCRIPT> <HEAD> ・・・・・・・・・・・・・ </BODY> <A HREF="javascript: openWindow1()"><IMG src="con_syousai.gif" width="65" height="20"></A></TD> </BODY> 今の所、一つしかリンクしていません。 いずれ、9個を同じような形で アイコンから、したいと思ってます HPビルダーのソースから記入したのですが 何処が可笑しいのでしょう? また、他の方法(タグ)はあるのでしょうか? どうか、お知恵を下さい 宜しくお願いします。

  • ポップアップウィンドウを画面中央に配置+複数リンクを同じウインドウに表示させたい

    過去にあった複数のイベント等の写真をスライドショーで紹介するページを作成中です。 ひとつのページ上に複数リンクがあって、それぞれクリックするとポップアプウィンドウが画面中央で開くようにすることはできました。(下記参照) <script type="text/javascript"> <!-- function win(url,windowname,width,height) { var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no"; if (width) { if (window.screen.width > width) features+=", left="+(window.screen.width-width)/2; else width=window.screen.width; features+=", width="+width; } if (height) { if (window.screen.height > height) features+=", top="+(window.screen.height-height)/2; else height=window.screen.height; features+=", height="+height; } window.open(url,windowname,features); } // --></script> body内 <a href="link_page.htm"onclick="win(this.href,null,600,430); return false;"><img src="image.gif" width="123" height="18" /></a></td> ただ複数あるリンクをクリックすると、ポップアップウィンドウも次々増えてしまうのを、常にひとつのウインドウ上に表示させることができません。 どうぞご指南よろしくお願いします!

  • jQueryUIでダイアログ作成について

    OKとキャンセルの確認ダイヤログを作成したいです。 <script> $(function() { $( "#dialog-confirm" ).dialog({ resizable: false, draggable:false, closeOnEscape:false, width:500, height:400, modal: true, buttons: { "Yes": function() { $( this ).dialog( "close" ); }, No: function() { window.location.href='http://www.yahoo.co.jp/' } } }); }); </script> 上記コードで動くのですが、 modal: true, これでダイヤログが出た時に半透明になりますよね。 これを半透明ではなく、不透明、背景がすけないようにしたいのですが、 可能でしょうか。 可能ならばやり方を教えて頂きたくよろしくお願い致します。

  • input要素の入力制限について

    <div id="pict"></div> <form action="post" id="f1"> <ul id="elementSize"> <li><label>縦<input type="text" name="height" value="500" />px</label></li> <li><label>横<input type="text" name="width" value="500" />px</label></li> </ul> </form> このような入力欄で、0~9以外の文字が入力された場合と、801以上の数字が入力された場合に、入力欄の後ろに「800以下の数字を入力してください」という文表示させ、800以下の数値が入力されたらこの文を消すようにしたいです。 function $(e){ return document.getElementById(e); } function WindowOnLoad(){ var heightStr = document.createTextNode("800以下の数字を半角で入力してください"); $("f1").height.onblur = function(){ if(this.value.match(/[^0-9]+/)||this.value>800){ $("elementSize").getElementsByTagName("li")[0].appendChild(heightStr); }else{ if($("elementSize").getElementsByTagName("li")[0].lastChild==heightStr){ $("elementSize").getElementsByTagName("li")[0].removeChild(heightStr); } $("pict").style.height = this.value + "px"; } } } if(window.addEventListener){ window.addEventListener("load", WindowOnLoad, false); }else{ window.attachEvent("onload", WindowOnLoad); }} if(window.addEventListener){ window.addEventListener("load", WindowOnLoad, false); }else{ window.attachEvent("onload", WindowOnLoad); } 今、上記のようなJavaScriptを書いて、実装は出来ているのですが、 もっとコードを短く出来ないかと思い質問させていただきました。 よろしくお願いします。

  • 中央に小窓表示

    とあるサイトで中央に小窓表示JavaScriptを使用し Another HTML-lint gatewayで文法チェックしたら XHTMLでは <SCRIPT> や <STYLE> の内容が #PCDATA です。コメントはコメントとして解釈されてしまうので、旧来のテクニックは使えません。外部にスクリプトファイルやスタイルファイルを用意するようにしましょう。 とでました 下記のJavaScriptを外部形式にするにはxxx.jsに書くところまではわかりましたが書き方がわかりませんどこを変更したらいいのでしょうか <script type="text/javascript"><!-- function m_win(url,windowname,width,height) { var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no"; if (width) { if (window.screen.width > width) features+=", left="+(window.screen.width-width)/2; else width=window.screen.width; features+=", width="+width; } if (height) { if (window.screen.height > height) features+=", top="+(window.screen.height-height)/2; else height=window.screen.height; features+=", height="+height; } window.open(url,windowname,features); } // --></script> よろしくお願いします

  • JavaScriptの質問です。

    JavaScriptの質問です。 昨日からJavaScriptを勉強しているのですが、 フォームのボタンクリックイベントで、新しいウィンドウを表示させる時に 元のウィンドウをさわれないようにする方法がわかりません。 新しいWindowを表示させる時は下記のように処理しています。 function test() {  NewWindow = window.open("test.htm","Window","toolbar=no,location=no,directories=no,width=300,height=200,left=355,top=250");} どうやったらできるのか教えてください。 よろしくお願いします。

  • setTimeoutでループしたいのですが…………

    下記コード例(jQuery)で、「hoge1」「hoge2」に対する処理をずっと続けたいのですが、どうすればよいでしょうか? ・再帰処理? ・それはどう書けば良いでしょうか? $(function(){  $(window).load(function(){   setTimeout(function(){    $('#hoge1').animate({略},150,'linear',function(){     $('#hoge2').animate({略},150,'linear',function(){     });    });   },1000);  }); });

このQ&Aのポイント
  • 運用益の受取と再投資、どちらが得かについての比較検討です。
  • 分配金を受け取る場合は利益を逐次受け取ることができますが、再投資では利益が確定するまで待つ必要があります。
  • 再投資の場合、利益を確定するまでリスクを負うことがあるため注意が必要です。
回答を見る