森のコーディング森のコーディング2011年07月マークアップエンジニアとかWEBディレクターとかをやってる僕が、自分が詰まって、解決したことをここに残しておきますよ。>7月30jQueryでドロップダウンメニューを手作りするを理解する入門。カテゴリ:jQuery今日ちょっとつまったので調べながら解決した。こちらをの記事をご覧あれ。「jQueryで作る多階層ドロップダウンメニュー」http://ascii.jp/elem/000/000/475/475908/cssまわりは、はしょります。li").hover(function(){$("ul:not(:animated)",this).slideDown("fast")},function(){$("ul",this).slideUp("fast");})})jqueryの基礎を一応勉強した僕ですが、これでなぜうまくいくのかいまいちわからなかったので調べながら理解したので説明。$("ul.sub").hide();ここはわかりやすい。class="sub">を初期値で隠しておくということ。jQueryではよくあるやり方っすね。li").hover(function(){ホニャララ},function(){プギャー}).hover()については、元記事でも説明しているけど、マウスが乗ったときには「ホニャララ」を実行して、マウスが降りたときには「プギャー」を実行するという構文。「ドットホバー命令カンマ命令」と口にだして覚えておこう。class="menu">の子要素である<li>にマウスが乗ったときに「ホニャララ」が実行されて、<li>からマウスが外れると「プギャー」が実行される。ホニャララに相当する部分。$("ul:not(:animated)",this).slideDown("fast")ここには、3つくらいの要素がぎゅっとつまっている。シンプルな部分を抜き出すと$("ul").slideDown("fast")という部分が見えてくる。速いスピードでスライドの動きをさせながら出現させる。slideDown("fast")とかはとくに気にする必要はなくて、とにかく、隠れてた<ul>というタグを出現させる、ということ。その”スライドさせる”、とか”速く”とか、エフェクト部分はおまけみたいなもんだ。この基本の出現の処理に、ひとつの追加命令を入れる。$("ul",this).slideDown("fast")"ul"の次にカンマthisが入った。thisというのはjQueryの命令文の中で発動条件となったcssが入ってくる。li").hover(function(){$("ul:not(:animated)",this).slideDown("fast")},function(){$("ul",this).slideUp("fast");})})じゃぁこの"ul",thisというのがどういう意味かというと、調べたところ「thisの子要素であるul」という意味らしい。ul").sildeDown("fast")と同じ意味になる。class="menu">の子要素の<li>にマウスを乗せると、さらにその<li>の子要素の<ul>が速いスピードでスライドしながら出現する>という意味になりますよ。あの難しい1文に入っていた3つめの要素がnot(:animated)の部分。これがなくても動くは動く。どんな問題が起きるかというと、マウスを載せたり降ろしたりを素早く繰り返してみると、その回数繰り返したぶんだけ、表示したり非表示になったりが後を追うようになんどもなんどもくり返してしまう。言葉じゃわかりにくいので、not(:animated)をはずして試してみるといい。not(:animated)を入れると、同じようにマウスをのせたり降ろしたりを繰り返しても、処理は繰り返されない。「アニメーションしてる最中のものに対しては、ホニャララを実行しないよ」という意味になる。動いてる最中のものにマウスを乗せても、命令は実行しません。動くのがとまってから実行しますよ、と。処理は1度しか行われずに、すっきりする。これで、一番難しい部分の$("ul:not(:animated)",this).slideDown("fast")が理解できる。<li>にマウスを乗せたら、その子要素の<ul>が表示されるのはわかったYO。その<ul>にマウスを移動させても開き続けているのはなぜ?これは、まぁ、<li>の子要素である<ul>に移動しても、まだ<li>にマウスが乗っているのと同じ意味だから。いうシンプルな回答になってしまうんだけど、元記事で注意としてさらりと書かれているのは、mouseover()とmouseout()を併用して、今回のhover()と同じことをやろうとしてもうまくいかないよ、ということ。hover()の場合は、子要素に移動しても新たに処理はスタートしないから、ずっとマウスオーバーしている状態とみなされる。<li>からその子要素である<ul>にマウスを移動しても、<li>に乗ったままなので、ひらきっぱなしですよー、という状態になる。mouserover()とmouseout()併用の場合は、子要素に移動したときに、新たな処理の始まりだと認識する。<li>にマウスオーバーして子要素の<ul>が開いた後、その<ul>にマウスを移動させると、<ul>が一度パッと消えて、もう一度開くような動きをしてしまう。slideDownが再度始まっちゃうってことだね。ドロップダウンメニューを作るときは.hover()でつくろうね、という結論であった。2011年07月30日01:27tacshockコメント:0トラックバック:07月15MT5エラー対処カテゴリ:MT'Daily'はアーカイブタイプとして登録されていませんというエラーが再構築中にでた。このエラーは初めてだったので、困った。ググっていても何も出てこない。20分ほどうなって、あぁ、Dailyって日付アーカイブのことか、と。万が一同じエラー出た人のためにメモを残しておきます。2011年07月15日02:27tacshockコメント:0トラックバック:07月13MTの「supportディレクトリに書き込みできません」エラーを解決カテゴリ:MTお客さんから依頼された仕事でMT5をインストールしたときに次のようなエラーが出た。supportディレクトリに書き込みできません。/home/user/public_html/mt/mt-static/support/uploadsにディレクトリを作成して、ウェブサーバーから書き込みできるパーミッションを与えてください。SSHでサーバー構築されてたものだったから、ターミナルでSSHでログインして、パーミッションを変更したら解決。/var/www/user/public_html/admin/mt-static/support/uploads2011年07月13日16:07tacshockコメント:0トラックバック:07月7「シェル(shell)とはなんだ」から始める。カテゴリ:サーバー構築サーバー構築の勉強を超初心者から始めてる。まっさきに出てくる「シェル」という言葉。この時点でわかんなかったので調べてみた。命令を実行するためのツールを「シェル」と呼ぶ。シェルでは、今のパソコンみたいにアイコンをクリックしたりして操作せず、ひたすらテキストで命令を打ち込んでコンピューターを操作していく。(マウスとかでクリックするだけでコンピューターを操作できる今のパソコンみたいなシステムのことをGUIという。UNIXみたいな文字を打ち込んで操作する昔っぽいシステムをCUIという。超おざなりにしていた。このシェルっていうのにも歴史があって、2つの会社がBシェル、Cシェルというのを開発して、それぞれ世の中に浸透していたらしい。今で言うブラウザ戦争みたいなもんかと推測する。そんで、Bシェルの流れを汲むのがbashというシェル。僕が、今渡されたIDでsshでサーバーにログインしてみると、bashという文字が出てくる。これはシェルの種類のことを言っているのだね。root権限になろうとすると、パスワードが違いますと出る。入ってくれと言われる。sudoとはなんぞやと調べてみると、どうやら、一時的に他の管理権限で命令を実行するために使うコマンドのようだ。いう風に実行していくんだけど、-sオプションをつけることで、「対話式シェル」が起動する。対話式シェルってなに?と調べてみるとよくわからない。-sで入ることで、ずっと、root権限状態でいろいろできるらしい。suとの違いが全然わからないけど、とりあえず入れたのでメモ。わかるようになったら、戻ってきてこの記事は書き換えます。役立たずですいません。長い英単語をいれるとtableの中をつきぬけちゃうイラレでスライスを速くするスクリプト。bluetoothヘッドセット1時間1円で暖かい。夏のPC仕事のおともに冷えピタ。クールヘッドで脳のスピードがあがります。お仕事のご依頼・お問い合わせはこちらコーディングのお仕事が得意です。