【覚書】サイドバー折り畳みボタン[+][-]を押した後でフォーカスを外す方法
「+」と「-」の色は変更出来たものの、クリックするたびに外側のマスに黒のborderが残ってしまうというコメントをみかけ、『あぁ、確かに気になる人は気になるかも……』と思って、対処方法を調べてみました。
実際にはscript要素内であれば他のところでも構わないのですが、この位置が解りやすいのではないかと。
ですので、上記の記述によりクリックイベントをトラップして、クリックされたオブジェクトのクラス名が"switch"の場合にはフォーカスを外す(blur())処理を行っています。
→違いました。折り畳みスクリプト(foldSidebar02c.js)のバージョン違いが原因の模様。
2007/03/04(日) 21:44 | 固定リンク
| 記事の編集(管理者用)
「おもいつき」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
- ノイズキャンセル(マスク|マイク)ってないのかな?(2008.05.07)
- 『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新(2008.05.05)
- Yin and Yang:リンク先の内容をその場で表示するスクリプトの更新(2008.05.02)
「ウェブログ・ココログ関連」カテゴリの記事
- 【ココログ】『続きを読む』をクリックしても、記事の途中に飛ばない場合の対策(2008.05.23)
- 『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新(2008.05.05)
- 【ココログ】はてブコメント表示欄をサイドバーにも(2008.04.12)
- 【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプト(2008.04.11)
- 【ココログ】特定の記事に対する最近のコメントをRSSで取得(Yahoo!Pipes版)(2008.03.09)
「パソコン・インターネット」カテゴリの記事
- ツールを作る側は対象に与える影響をどこまで気にするか?(2008.05.29)
- "『無断リンクはやめて』という人にはしない方向で"の思考過程(2008.05.24)
- 『無断リンクはやめて』という人にはしない方向で(2008.05.22)
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
「覚書」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Google検索結果画面のHTML構造、変わりました?(2008.04.30)
- Googleの検索結果からH2タグが消える現象の原因(2008.05.03)
- 【JScript】ActiveXObject('htmlfile')で発生する不具合(2008.04.05)
- 【JavaScript】onmouseover/onmouseoutの振る舞い(2008.03.11)


こんにちは。
対応策のレス、ありがとうございました。
助かりました。
普通に設置すればフォーカスは外れるものかと思っていましたが、
私のほうがイレギュラーな動きだったんですね(^^;;
>多分、設置されているブログパーツのどれかがフォーカスを(定期的に?)横取りしているのではないか、と推測していますが。
昔から変わらず置いているブログパーツとなると、
ブログペットでしょうか。
通常のやり方とは違った貼り付け方をしているので、
そのあたりになにかあったりとか……。
投稿 KOROPPY | 2007/03/05 10:33:09
button要素だからなんですね。なるほど。
確かにフォーカスの枠は気になる人は気になるかもしれませんね…。
あと、こういう風に、document.onclickで処理できるんですね。勉強になりました。
ところで、一つだけ気になったんですが、
t.className&& は不要ですか?
投稿 facet | 2007/03/05 15:58:12
| 普通に設置すればフォーカスは外れるものかと思っていましたが
原因がわかりました……多分。
KOROPPYさんが現在設置されている foldSidebar02c.js と、facet さんのところで公開されているものとで、バージョンが微妙に異なるようですが、このためみたいですね。
KOROPPY さんのところのものだと、_getModuleHeadText() という関数で、H2要素の中身(innerHTML)を直接書きしていますが、このときにスイッチからフォーカスが外れるのだと思われます。
facet さんのところの最新版では、innerHTMLを直接書換えていないので、フォーカスが残ったままになるようです。
投稿 風柳>KOROPPY さん | 2007/03/06 1:34:21
| t.className&& は不要ですか?
t.classNameがnullの場合を考えての話でしょうか?
t.className=='switch'の条件にあてはまらないので、大丈夫じゃないかと思いますが……。
#t&& は必要かもしれませんね……でもイベント発生でコールされているのに、target(またはsrcElement)が取れない場合ってあるのかな?
投稿 風柳>facet さん | 2007/03/06 1:41:41
KOROPPYさんちのフォーカスの話。
自分のスクリプトだったとは!(笑) //よく見つけますね、こんなの…(^^;
なんでクリック時に見出し内容をいちいち判定しなくちゃならなかったのか今となっては謎ですけどw、innerHTMLによる再描画でフォーカスが外れること自体は、なるほど、そういう実装になっていてもおかしくはないなという気がしました。
フォーカスを外す目的でinnerHTMLで再描画するのはさすがにアレでしょうけど(^^;
それから、t.className&&の話。
これ、昔このスクリプトを作り始めた頃、これを書かないとエラーがでて動作しないことがあったんですよね。なので、全部いちいち if (t.className && t.className== ...) 的に書かされた記憶が。…でも、今のFirefoxだとなくてもエラーがでないですね。知らなかった…
ちょっと実験してみたら、t.nodeType==3になることがないですね…。e.targetの仕様が変わったのか?
投稿 facet | 2007/03/06 22:04:04