jQueryでcheckboxにチェックを入れる/外すにはporp()を使え!!

ん?

checkboxにチェックを入れる → $("***").attr("checked",true);
checkboxにチェックを外す → $("***").attr("checked",false);

じゃねぇの?

やってみたら、一度チェックを入れるとチェックが入らない・・・

どうやら jQuery 1.6 のあたりからporp()というメソッドが実装されたそうで、attr()ではなくporp()を使う方がよいとのこと。

使い方やそもそもどういうメソッドなのかは↓やらを参考のこと。

jQueryにおけるattrとpropの違いと使いドコロまとめ
http://qiita.com/kbyay_/items/7a7ce9547f29b34a63b1

checkboxにチェックを入れる → $("***").prop("checked",true);
checkboxにチェックを外す → $("***").prop("checked",false);

ってするほうがいいようで。

WordPressの【超有名】問い合わせフォームプラグイン「Contact Form 7」の確認画面を追加表示するプラグインを作った

WordPressを使う上で絶対に入れているであろうプラグイン「Contact Form 7」の確認画面を表示するプラグインを作ったった。Contact Form 7については説明する必要すらないと思うので、Contact Form 7の説明は割愛する。必要ならぐぐってくれ。鬼のように出てくると思うから。

使い方は簡単。

以下の2行のコードを<head>と</head>の間のどこかに書いてくれ。

WordPressのfunctions.phpに書くなら、

こんなとこかな。

あと、jQueryを読み込ませるのを忘れずに!!

ファイル配布はメンドクサイのでしない。欲しけりゃ↑のサーバから勝手に取ってくれ。バージョンアップは適当にするけど、バージョンアップの告知はメンドクサイからしないかもしれないし、するかもしれない。

注意点をまとめると、以下のとおり。

  • Contact Form 7とは別に独自の入力必須チェックをしている。ただし、入力エラー時のエラー文言は変更できない。
  • 本家でラジオボタンには入力必須設定ができないので、ラジオボタン要素に入力必須の設定を出来るようにした。
    • 入力必須にしたいラジオボタン設定のclass値に「required」と入れてくれ。
    • こんなかんじでやる
  • jQueryは必須
  • jQueryは1.9.1でしか検証してない(動くと思うけど)
  • 2014/3/18段階でアルファリリースなのでバグ等をふんだんに含んでいるとおもわれる。
  • 言うまでもないけど、確認画面のスタイルは自分でstyle.cssにでも書いてね。そこまで賢くないよ、これ。

<余談>

プラグインを作ったと書いたけど、Wordpressのプラグイン形式ではないので、「プラグイン」と語るのは正確には違う気がする。。。jqueryプラグインでもない。。。javascriptライブラリといったとこだけど、APIとして供給しているわけじゃないからライブラリでもないんだよなぁ。。。こまけぇことはいいんだよ、こまけぇことは。

投稿日:
カテゴリー: 技術系

Google ChromeブラウザでYouTubeの再生が途中で止まる不具合の解決方法

結論から言うと、chromeの再インストールでなおった。ただ、これが不具合の解決策である・・と自信をもって言えない。

なぜなら、chromeでのYouTube再生障害の原因は主にchromeとFlash Playerの相性問題といわれているけど、この現象が起こるPCと起らないPCがあったり、原因はいまいちはっきりしない(ってか詳細に調査する気がない・・・)。

実際に我が家の3台の端末で2台に不具合がでて、1台はchrome再インストールで不具合解消、1台はchromeアップデートで不具合解消した。

他の解消方法としては、Flashの再インストール、chromeにバンドルされているFlashのダウングレードとかになるんか・・・まぁ色々とためしてみてちょーだい。

<2013/11/14 追記>

クローム再インストールでも再発しやがった!!

ってことでいろいろ弄っていたらなおったっぽいのでご紹介。

chromeのアドレス欄に↓のいずれかを打ちこんでプラグイン画面をひらく。

  • about:plugins
  • chrome://plugins

詳細リンクをクリックして、詳細表示にしてみると、Adobe Flash Playerが二つはいってない?

この二つのうち、chromeにデフォルトでバンドルされていると思われるほうを無効にする。

僕の↓の環境では、上のほうね。

とりあえずこれでなおった・・・・っと思う。

ダメだったらどっちかを無効にして試してみてちょーだい。たぶんそれでイケルとおもう。

<2014/10/29 追記>

それでもダメなら↓こっちもためしてみて。

「Google ChromeでYoutubeの再生が始まらない、見れない、読み込みのまま止まる場合の対処法」

MySQLのAuto Increment値をリセットする

もうすでにググってるから知っているだろうけど、

ALTER TABLE [テーブル名] AUTO_INCREMENT = 1;

のSQL文でAuto Increment値の設定はリセットされる。

ただし、他のブログ情報では、「先に全レコードを削除しないと再設定できない」とか「MyISAMでは最大値+1に変更され、InnoDBでは変更されない」など書いてある。

しかし、オレの手元にある MySQL Ver 5.5.18 でテストした限り、InnoDBでもAuto Increment値は最大値+1に再設定された

どのバージョンからこれに対応したんかね?

無事にAuto Increment値のリセットができてるからまぁいいや。

Googleが定義する「みんなが素晴らしい管理者と認める8つの行動(オキシゲン・エイト)」

WIRED VOL. 7に面白いことかいてあった。

天下のGoogleが「良き上司(=良き管理者)」を従業員にインタービューしながら分析したんだそうだ。
その結果が以下のもの。

  • 1.良い指導者でること
  • 2.細かい事まで口出ししないこと
  • 3.従業員の幸せに関心があると態度で示すこと
  • 4.生産的で結果志向であること
  • 5.チームの話に耳を傾けること
  • 6.従業員のキャリア開発を支援すること
  • 7.明確なビジョンをもっていること
  • 8.最低限の専門的技術をもつこと

ちなみに「8.最低限の専門的技術をもつこと」が項目のなかで一番重要視されていなかったそうだ。つまり管理者としてふさわしい人間は、「仕事」に向き合う事よりも、「仕事をする人間(=部下という人間)」に向き合う事が重要だということ。言いかえれば、「仕事」を大切にするのではなく、「仕事をする部下という人間」を大切にすることが一番重要である、ということだ。Googleで「オキシゲン・エイト」と呼ばれる評価基準は、実際にGoogleの人事体制を決定する評価基準として使われているそうだ。

あなたが所属している組織、もしくはあなたの会社の組織体制ではどうだろうか?

WindowsXPのサポートが終了したらソッコーでなんとかしたほうがいい3つの理由と1つの意見

セキュリティ面の不安

ウィルス(マルウェア等を含めた悪性プログラムを総称して「ウィルス」と呼ぶ)って、アンチウィルスを入れていても全然大丈夫じゃないってしってた?ウィルスって世の中に出回らないとアンチウィルス対策がなされない。年々ウィルスも巧妙化していて、アンチウィルス会社も後手後手にまわることが増えていて、ウィルスの被害が増えてからやっと対策がなされることも増えている。だからアンチウィルスを入れていても全然大丈夫じゃない。

一方で、ウィルスのほとんどがOSの脆弱性を突いたものがほとんど。つまり、ほとんどのウィルスはOSの脆弱性が解消されていれば無効化できるものがほとんどだし、ウィルスが蔓延する前にOSの脆弱性がつぶされていれば、ほとんど脅威にはならない場合が多い。さらにアンチウィルスソフトもOSの脆弱性が対策されていることを前提にしている。つまり、マイクロソフトのサポートが終了して、潜在しているかもしれないWindowsXPの脆弱性対策がなされないことはセキュリティリスクが非常に高く、たとえアンチウィルスしっかり入れていたとしても、かなり危険な事というわけだ。

マイクロソフト以外のソフトウェアがWindowsXPをサポートしなくなる

マイクロソフト以外のソフトウェアベンダーは自社が販売したソフトウェアを保守メンテナンスをしている。一方で、WindowsXPのサポートが終了するということは、彼らのようなソフトウェアベンダーもまたマイクロソフトからWindowsXPのサポート(開発ライセンスの)が受けられなくことを意味する。つまり、彼らは「マイクロソフトのサポートが受けられないOSでは、自社ソフトウェアの動作を保障しないよ」とする可能性が非常に高い。そうなると、彼らが提供しているソフトウェアがWindowsXPでは動作しなくなることにはならないとしても、そのソフトウェアが脆弱性があり、危険に晒されていたとしても一切対策がなされない可能性が十分考えられる。近年では、Adobe ReaderやAdobe Flashなどは常にセキュリティリスクに晒されており、悪性プログラムの標的にされているアプリケーションだが、これらも脆弱性対策がなされなくなる可能性が非常に高い。

周辺機器が対応しなくなる

マウスやプリンタ、カードリーダーなどの周辺機器は「デバイスドライバ」と呼ばれる接続プログラムでWindowsと接続されている。そんなん入れなくても使えてるよ?ってのはWindowsに標準デバイスドライバってのがあらかじめ入ってて「それでも動く」というだけ。ほぼ全ての周辺機器でハードウェアベンダから、その機器の動作に最適化された独自デバイスドライバが配布されている。そして一部機器(専門的な機器ほど)は独自デバイスドライバを入れなければ動かない。っとすると、前述同様に、周辺機器ハードウェアベンダが「WindowsXPサポートが終了したのでXP対応のデバイスドライバを開発しないよ」となり、実質的にその機器はWindowsXPでは動かないということが頻発する(過去、長寿だったWindows98のサポ終了時、実際にコレが問題になった)。家電量販店でPC周辺機器の箱の裏を見てほしい。対応OSが書いてあるはずだ。WindowsXPサポートが終了すると、ここからXPのマークが消える日も近い。

じゃ、どうするればいい?

対策コストは、新しいPCを買い替えると最低でも約4万円弱(タブレットにするという選択肢も含めて)。一方で、Windows7を買ってアップグレードするなら最低で約1万円強(いまのところ、まだWindows8はやめたほうがいいと思う)。おれなら迷わずPCを新調する。どちらにしろ、OSがクリーンな状態になるわけで、必要なアプリは初めからインストールし直さなくちゃいかん(動かんアプリはどっちにしろ動かんわけだし)。XP搭載機よりも格段に快適になるのは言うに及ばず、さらに、現機がWindows7に対応しているのか調べる手間やら、現機のWindows7用ドライバを探す手間やら考えると、買い替えたほうが楽だし早い。現機に特別な愛着があるとか、金ないとかなら別だけど。

GoogleMapで地図描画前に描画要素をdisplay:none;すると表示がおかしくなる(中心がズレて表示される)

GoogleMapAPI とか GoogleMap埋め込み などを利用している場合、MAP描画前にiFrame要素や、APIで描画仕様としているボックス要素を display: none; で表示を消してしまうと表示がおかしくなる。

べつに表示されないわけではないのだけど、地図の中心がずれたりする。この問題の回避策はJavascriptなどを利用してロード開始時には表示しておき、ロード後に非表示にするしかない。

試してみたところ、

<div style="height: 0px; overflow: hidden;">

としても地図は問題なく表示されたので、初期設定は左記ほのとおりスタイルを設定しておき、ロード後にjQueryなどで

$("div").css("height","").css("overflow","")

として初期設定を消してやればいいだろう。

ロリポップのCRON設定でシェルファイルを使ったとき「/bin/sh^M: bad interpreter: No such file or directory」というエラーが出る。

ロリポップのCRON設定でシェルスクリプトを使う場合、以下の様なエラーメッセージが出てハマった。

/bin/sh: /home/users/2/アカウント名/web/my_cron.sh: /bin/sh^M: bad interpreter: No such file or directory

そもそも原因はロリポップじゃなくて、オレ・・・・

結論から言うと「シェルファイルの文字コードをUTF-8、改行コードをLFのみ」に変更するとなおる。

Windows標準の「メモ帳」とか使ってちゃだめなんだぜぇ~

ん~~~UNIX?なにそれうまいの?

[HTML&CSS]Google Chrome for Androidでは、BOX要素のmax-heightを%で指定するとoverflow設定が効かない

Google Chrome for Androidでは、DIV要素などのBOX要素のmax-heightを%で指定するとoverflow設定が効かない。

ちなみに、Android標準ブラウザとiOSのMobile Safariではmax-heightを%で指定しても問題なくoverflow設定が効く。Chrome for Androidだけ困ったちゃんなんです。コマったね。

まぁ回避策はいろいろあるんだろうけど、俺は安易に、jQueryで

$(“div.****”).css(“max-height”,$(window).height()*0.95)

ってやっちゃった。