のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,469,785人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.82 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
601 : Name_Not - 2011/01/01(土) 16:29:39 ID:??? (+43,+29,-78)
>>600
条件(今の場合、HTML や CSS)次第で特定のコードが問題になり得るという意味だが、通じないか?
それにバグ(現象)の原因が特定のコードにあるものであって、「すでにあるコードのバグ」こそ意味不明だが。
602 : Name_Not - 2011/01/01(土) 16:39:57 ID:??? (+44,+30,-82)
>>601
わざわざ「既にある」って書いたのは、未来の話でこれからコードを組もうとしてるときに
「そのやり方ではバグが起こりうる」というなら分かるんだけどなと思って。
この話では既に組まれてる595のコードがあるわけだから「エラーが起こりうるバグが有る」とかじゃないのかなと。
まあ、細かい話なんですが。
603 : 595 - 2011/01/01(土) 16:47:18 ID:??? (+36,+29,-5)
>>599
どういう状況だとバグが起こるのか、出来れば教えてもらいたい。
604 : Name_Not - 2011/01/01(土) 16:49:38 ID:??? (+38,+29,-64)
>>602
JavaScript をブラウザで動かす場合は、必ず DOM も絡んでくる訳で。
今回のケースでも当然、それ次第で、動作に問題が起こったり、起こらなかったり、という話。
595 のコード単体では完結しないかと。
605 : Name_Not - 2011/01/01(土) 16:50:43 ID:??? (+34,+29,-4)
>>603
子要素が親要素からはみ出していた場合。
606 : Name_Not - 2011/01/01(土) 16:59:43 ID:??? (-28,-27,-58)
>>597
> attachEvent を利用すれば、IE でも第一引数で event を得られる。
そうなんだ。それはどこで規定されていますか?
http://msdn.microsoft.com/en-us/library/ms536343.aspx

どこにも定義されていないものだったら、バージョンによって
いきなり非対応になるかもしれなくて怖いので教えてください。
607 : Name_Not - 2011/01/01(土) 17:05:39 ID:??? (-25,-29,-26)
>>605
そういう要素は作る予定はないので、問題ないはずです。

子要素が親要素からはみ出ている場合、どういう状況だとダメなのか良く解らん。
はみ出ている部分からでた時?
if ((e.target || e.srcElement) == element) があるから大丈夫だと思うんだけどな。
608 : 594 - 2011/01/01(土) 17:08:07 ID:??? (-29,-30,+0)
>>598
jquery-1.4.4.js のコードを解読できるぐらいのスキルがあるなら、それでもいいと思うよ。

だが、俺は attr() に属性値 (getAttributeのエイリアス) を期待するし、そうあるべきだと思う。
"jquery-1.4.4.min.js" をHTML文書で検証するとこうなる。

<form><p><input type="checkbox" id="hoge" checked></p></form>
<script>
console.log(document.getElementById('hoge').getAttribute('checked')); // ""
console.log(document.getElementById('hoge').checked); // true
console.log($('#hoge').attr('checked')); // true
console.log($('#hoge').get(0).checked); // true
</script>

XHTML文書ではこうなる。

<form><p><input type="checkbox" id="hoge" checked="checked" /></p></form>
<script>
console.log(document.getElementById('hoge').getAttribute('checked')); // checked
console.log(document.getElementById('hoge').checked); // true
console.log($('#hoge').attr('checked')); // checked
console.log($('#hoge').get(0).checked); // true
</script>

見てわかるように、HTML文書とXHTML文書では attr() の出力結果が異なる。
俺としては「jQuery 余計なことすんな」って感じなんだが、感性の違いなんだろうな。
別の考えがあることを否定するわけではないが、俺は attr() を使わない方法をお勧めする
609 : Name_Not - 2011/01/01(土) 17:12:57 ID:??? (+24,+22,-20)
>>605
本当に?
DOMノードはObject型だから要素のレイアウトは関係ないと思うんだけどな。
610 : Name_Not - 2011/01/01(土) 17:26:28 ID:??? (-25,-30,-50)
>>607
var to = e.toElement || e.relatedTarget;

これが問題。
子要素がはみ出ていた場合(または一部の端が重なっていた場合)、
そこをマウスが通ると、変数 to が while ループ内で親要素を経由しない。
611 : Name_Not - 2011/01/01(土) 17:45:13 ID:??? (+24,+29,+0)
>>610
なるほど。そういうことか…!
612 : Name_Not - 2011/01/01(土) 17:57:57 ID:??? (-26,-29,-5)
(e.target || e.srcElement) == element

この条件式だろうと思ってたが。。。ま、いいか
614 : 598 - 2011/01/01(土) 18:13:37 ID:??? (+28,+30,+0)
>>608
その差異が「ライブラリの便利機能」になるか「余計なお世話」になるかは
シチュエーションによって異なるはず。んで、

・話の発端である>>589の「チェックボックスがチェックされているか」、
「セレクトボックスでこの項目が選択されているか」

みたいな判別をしようという場面で、>>594みたいに
あえてDOMのプロパティを直接参照する意味ってどこにあるのか、という話。
ましてや、ブラウザ間の互換性を保つために余計なコードを
自前で用意する羽目に陥るなんて
(『自分で組み込もうと決めた』jQueryの中に同じ処理が用意されているのに!)
ナンセンス極まりないと思う。

そりゃまあ、

・できる限りDOMを見るが(checked属性とかid属性とか)、
・問題が生ずる場合は仕方なしにattr()を使う(selected属性とかtabIndex属性とか)

という立場がないわけでもないけど、それこそjQueryのソースと
各ブラウザの挙動をしっかり把握した人でないとできないことだし、
そしてそれは間違いなくライブラリ側で意図した書き方には沿っていない。
後になってそのコードを読む人が混乱するだけじゃないかなあ。
616 : Name_Not - 2011/01/01(土) 18:43:50 ID:??? (+20,+27,-18)
古代の化石だなw
617 : Name_Not - 2011/01/01(土) 18:46:56 ID:??? (+10,+22,+1)
>>615
ありがとう。
618 : Name_Not - 2011/01/01(土) 18:49:36 ID:??? (+24,+29,-58)
>>612
やっと理解できた。
親にしかイベント登録してないのに、子でも検知・しかも親には伝播しないのか。
たしかにはみ出している場合におかしいですね。
ありがとう。
619 : Name_Not - 2011/01/01(土) 19:24:42 ID:??? (+27,+29,-37)
いや、伝播してるから登録した関数が呼ばれてるんだ。
イベント発生源(target要素)になれるとは限らない、ってことね。
620 : Name_Not - 2011/01/01(土) 19:31:43 ID:??? (+27,+29,-1)
あぁそうそう、それが言いたかった。ありがとう。
621 : Name_Not - 2011/01/01(土) 22:24:01 ID:??? (-27,-30,-220)
任意のIDの中の、特定のタグ或いはクラス名の要素に対して操作を行いたいと思っています。
具体的には下記のような記述を行ってみたのですが、どうも反映されません。

<style type="text/css">
.gray{
background-color:#999999;
}
.red{
background-color:#FF0000;
}
</style>
</head>
<body>
<div id="hoge">
<a class="gray" onclick="test()" href="#">test</a>
</div>
<script type="text/javascript">
function test(){
document.getElementById("hoge").getElementsByTagName("a").setAttribute('class','red');
}
</script>
</body>

alertでaタグのvalueを表示する事はできたのですが、
setAttributeでのclass変更ができません。
※確認ブラウザはFirefoxです。

どうぞよろしくお願いいたします。
624 : Name_Not - 2011/01/02(日) 01:53:08 ID:??? (+13,+29,-12)
セーフモードではどうだろうか
630 : Name_Not - 2011/01/02(日) 21:23:53 ID:??? (+11,+3,-68)
ある本で、何度もRegexpと書かれていましたが、
実際はRegExpでした(Expの頭も大文字)。
これ、実際にRegexpだった時代や処理系があったんでしょうか?
それとも、そういう歴史的経緯はなく、ただ単に本のミス?
632 : Name_Not - 2011/01/03(月) 00:44:15 ID:??? (+29,+29,-28)
>>630
監修で有名な人がついてるならともかくそのへんの普通の本は鵜呑みにしないこと
俺やあなたのような人が適当にBlogで書いてるのだって目につけば出版されうる業界
633 : Name_Not - 2011/01/03(月) 02:03:06 ID:??? (+27,+29,-19)
検索した感じだと、Ruby がそういう表記をするのかな。
Ruby の知識はないから知らないけど。
できれば、その本のタイトル(と著者)を教えて欲しい。
636 : Name_Not - 2011/01/04(火) 16:57:41 ID:SHlZLGkU (+42,+29,-162)
久々にJS触ったんだけど、今はprototype.jsなんか使わずに、jQueryを皆使ってるんですか?
Ajax用に使うならばやっぱPrototypeよりjQueryの方がいいのでしょうか?
ソースコードをざっと見てみましたが、jQueryの方が小さくて、コレで本当に色んな事が出来るんだろうかと思ってしまいましたが、やっぱjQueryの方が何らかの利点が大きいからメインになっているのでしょうね?
637 : Name_Not - 2011/01/04(火) 17:19:26 ID:??? (+38,+29,-107)
自分で使ってみるのが一番手っ取り早いと思うけど。

・DOMを汚さない、軽い
・アニメーション機能
・CSS風セレクタ(これはjQueryじゃなくてSizzleだけど)
・拡張性が高く、またプラグインの作り方についてのガイドラインが形成されている
 (誰が作ったものであってもあまり違和感なく利用できる)

あたりじゃないかな。
とにかく比較するとやっぱ使いやすい。
638 : 636 - 2011/01/04(火) 17:27:07 ID:SHlZLGkU (+38,+30,-183)
確かに使ってみる事は重要ですが、一応人の感想も参考にしたいと思いまして
自分では気がつかない点もあるかもしれませんので

自分もざっと書店でのjQueryを見ましたが、基本的に>>637で指摘されているような点を感じました
特にアニメーション、デザイン系が(目立つから?)多く載っていたように思いました

ちなみにAjax利用の観点からだといかがですか?
後は、(まぁ大丈夫だと思いますが)ブラウザ間の差異とか
639 : Name_Not - 2011/01/04(火) 17:42:28 ID:??? (+32,+29,-107)
prototype.jsはXHRを薄くラップしている(そこに機能追加してる)のに対し、
jQueryはなるべくその辺を意識しないでいいような作りになってる。

http://semooh.jp/jquery/api/ajax/jQuery.ajax/options/

好き嫌いはあるにせよ、とりあえずタイプ量はこっちの方が減る。
あとブラウザ間で差異(少なくとも、それがjQueryのバグであると見なされるような)が
出て困ることはまずないと思う。
640 : Name_Not - 2011/01/04(火) 20:00:24 ID:??? (+21,+18,-90)
ちょっと失礼します。

OperaのエクステンションやFirefoxのアドオンの有無を調べることとかできますでしょうか。可能ならば方法も提示頂きたいです。
テキストボックスにフォーカスしたときに回りにSafariやChromeのような枠を表示させたいのですが、重複は邪魔でしょうから分岐したいのです。

よろしくお願いします。
641 : Name_Not - 2011/01/04(火) 20:05:12 ID:??? (+27,+29,-5)
権限の都合でたぶんムリ
642 : Name_Not - 2011/01/04(火) 20:06:44 ID:??? (+36,+29,-23)
>>641
640です。もう少し詳しくお聞きしたいのですが、フォーム部品に枠を表示させることに権利がいるということでしょうか。
643 : Name_Not - 2011/01/04(火) 21:03:26 ID:??? (+32,+29,-1)
>>642
やだなあアドオンのことに決まってるじゃないですか
644 : Name_Not - 2011/01/04(火) 21:48:47 ID:??? (+17,+19,-17)
この様なときのための王道があるじゃないか。
基本を忘れてはいけない。

つ prompt()
645 : Name_Not - 2011/01/04(火) 21:57:51 ID:??? (+32,+29,-162)
とりあえずFirefoxの話をすると、アドオンをJavaScriptで書くことはできるが、
(ローカルのファイルにアクセスできたりすることからも分かるように)
そのスクリプトはwebページのスクリプトとは別の特権モードで動くことになる。
で、セキュリティの都合上、後者は前者に干渉することはできないはず。
アドオンが明示的にdocumentに対して何かプロパティを注入するようなことをしていれば
話はまた別だけど、それはアドオンがそう作ってあるからであって、一般論としては無理。
646 : Name_Not - 2011/01/05(水) 17:39:42 ID:??? (-26,-29,-26)
forを使ったりstyleタグをhtmlに挿入したりせずに.style=みたいな雰囲気で、
styleタグの*や+や>のような指定をすることはできますでしょうか?
できたらやり方を教えていただけるとありがたいです
お願いします
647 : Name_Not - 2011/01/05(水) 17:51:36 ID:??? (-12,+0,+0)
できません
648 : Name_Not - 2011/01/05(水) 21:11:51 ID:??? (+27,+29,-46)
DHTMLのお勧め本ありませんか?
難しくなく、サンプルがたくさん載っているのがいいです
649 : Name_Not - 2011/01/05(水) 21:25:42 ID:??? (+27,+29,-22)
人にお勧めできるレベルの本となるとDHTMLだと1つだけ、英語だけど
http://www.amazon.co.jp/dp/0596527403
分かりやすいかは見て確かめて
650 : Name_Not - 2011/01/05(水) 21:28:18 ID:??? (+27,+29,-4)
いや、適当な選択でいいので日本語でお願いします
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について