元スレ+ JavaScript の質問用スレッド vol.117 +
JavaScript覧 / PC版 /みんなの評価 :
701 = :
>>698
> 出来ないなら、自前で同じことをするしかない
なんで?
703 = :
>>701
出来ないからじゃん
何言ってんの?
704 = :
そもそも「省略されているかされていないかを判定する」必要性がわからん
705 = :
勝手に分からなけりゃいいだろ
馬鹿じゃねえの
708 = :
>>702
ありがとう、むしろ手間をかけさせて申し訳ない
> 全ノードに js-refered フラグを付けられれば
まさにこういう類のことを考えてたんだけど
やっぱり地道な対応しかないか…
709 = :
>>707
なるほどrangeですか・・
たしかになんとかなるかもしれません
ありがとうございました
710 = :
まだやってんの? いま来た人用にわかりやすい例え思いついたわw
innerHTMLには根本的な問題がある
代入演算子=には根本的な問題がある
innerHTMLに代入したら古い値が消えることだ
代入演算子=で代入したら古い値が消えることだ
前の値を残しておきたいときはDOM操作をしなければならない
前の値を残しておきたいときは足し算をしなければいけない
だからinnerHTMLを使ってはならない
だから代入演算子を使ってはならない
★普通の人が考えること
前の値が要らない時はinnerHTMLでいいんじゃねーの?
前の値が要らない時は代入演算子でいいんじゃねーの?
そもそも前の値を捨てて新しい値を入れる時にinnerHTMLを使うんじゃねーの?
そもそも前の値を捨てて新しい値を入れる時に代入演算子を使うんじゃねーの?
711 = :
>>702
> ただし、「innerHTML が楽だ」という人は大抵、「ノードを置換しなくて良いケース」や
> 「部分的な置換でよいケース」でもらくだからという理由で全体を置換しようとすることが多い
その前提がおかしいんだろ。
なんで置換ありきなんだ?
innerHTMLを使う時に一番多いのは、文字列で新しくHTMLを
生成するときだろ。置換なんかしねぇよ。
712 = :
タブレットでスクロール可能なエリアでスワイプすると、横スクロールするだけでスワイプの動作が取得できません。
どのようなコードを記載すべきでしょうか。下記のようなコードを記載しました。
<html>
<head>
<title>My Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript">
$(function(){
$('#scrollswipe').bind('swipe', function(){
alert("swipe");
});
});
</script>
</head>
<body>
<div id="scrollswipe" style="width:200px; height:200px; overflow:scroll;">
<h1>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</h1>
<h1>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</h1>
<h1>cccccccccccccccccccccccccccccccccccccccccccc</h1>
<h1>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</h1>
<h1>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</h1>
</div>
</body>
</html>
713 = :
>>712
これ使ってる。自力実装は死ぬと思うよ。
http://cubiq.org/iscroll-5
もしくは、jQuery Mobileだね。
俺が試したリリース初期頃は端末が遅いのと
ライブラリが重いので使うのやめたけど。
717 = :
>>639も使わなくていい場面でinnerHTMLを使ってるので五十歩百歩
ノードを置換しなくてもいいのにinnerHTMLを使ってる時点で使い方がなってない
718 = :
innerHTML使って無いジャン
719 = :
1 delete objA;
2 new objB;
結局、innerHTMLは、古いオブジェクトを削除して、
新しいオブジェクトを作っただけかね?
720 = :
xmlHttpRequestでphpを指定した時そのphpはどこで実行されるんですか?
サーバー側かクライアント側にphpごと来るのか
721 = :
>>718
.html() は内部的に innerHTML を利用しているから innerHTML を使用しているのと同義
722 = :
>>720
http://itpro.nikkeibp.co.jp/article/COLUMN/20060215/229453/
723 = :
>>719
innerHTML はシリアライズも行う
また、後付で標準化されたので仕様が曖昧で実装依存な処理もそれなりにある
http://domparsing.spec.whatwg.org/#innerhtml
http://msdn.microsoft.com/en-us/library/ie/ms533897.aspx
724 = :
>>720
サーバに決まってるじゃん
phpってのはサーバで実行されてHTMLやXMLを出力するもので
サーバの外に出てくることはない
726 = :
>>723
シリアライズが何を言っているのかわからないが、
innerHTMLはDOMオブジェクトをシリアライズするのではない。
HTML要素とDOMオブジェクトの違いがわかってない人が多いんだよな。
これ理解するのに、jQueryのdata()メソッドの挙動を勉強するのがいい。
たとえばこんなHTMLがあるとする。
<span id="id" data-value="123">test</span>
これを $('#id').data('value') で参照すると123が返ってくる。
そのあと $('#id').data('value', 456) を実行し、参照したら456が返ってくる。
当たり前の動作に見えるが、ここで$('#id').attr('data-value')を参照すると、返ってくるのは123。
つまり、dataはDOMオブジェクトの値をかえるが、HTML要素は書き換えないということ。
DOMオブジェクトの状態とHTMLは全くの別もの。DOMオブジェクトをシリアライズしたものがHTMLなのではない。
HTML要素を書き換えるとDOMオブジェクトに反映されるが、DOMオブジェクトを書き換えても
HTML要素には反映されない。それがDOMオブジェクトに割り当てるイベントハンドラなど。
jQueryのattr()メソッド(DOMでいえばsetAttribute)は "HTML要素を書き換える" メソッド
on(DOMで言えばaddEventListener)はDOMオブジェクトにイベントハンドラを設定するメソッド
それぞれのメソッドで、影響をあたえるものが、HTML要素だったり、DOMオブジェクトだったりする。
innerHTMLが行うのは、HTML要素の取得と設定で、DOMオブジェクト操作用ではない。
728 = :
>>726
JQueryのdataはDOMと関係無く値を収納してるんだが?
お前が一番違い分かって無いだろ…何長々と馬鹿な事言ってるんだ
730 = :
>>728
えらいえらい。よく気づいたね。
じゃあ、DOMの話だけでするならば、
フォームのvalueが全く同じ挙動をする。
ページが表示されてからinputの内容を入力した時、
valueプロパティ、つまりDOMオブジェクトの値は最新の値だが、
value属性はページが表示された時のまま。
DOMオブジェクトの内容と、属性は関係してそうで関係していない。
jQueryのdataはこの動作を参考にして作られていると考えれば良い。
731 = :
実装依存は困るよな…
っていうかHTMLもCSSもJavaScriptも全ブラウザ全部仕様通り全部動作完全に一緒だったらと思うと
732 = :
>>731
それはネットスケープが悪いんだよ。JavaScriptを初めて搭載したブラウザ。
標準化しないで勝手に言語を作った。
まずいきなり実装しないで、標準団体を設立して標準化するべきだった。
733 = :
>>732
今更何を…
むしろマイクロソフトに言うべきだろ
734 = :
msは話しにならん
736 = :
あってません
737 = :
>>726
innerHTML は WhiteSpace のノーマライズとか tagName, attributeName の大文字化or小文字化を実装依存で処理してるんだが
この人は何を言ってるのかわからないのになぜ自信満々なんだ
仕様書にも " running the HTML fragment serialization algorithm" とあるが、 読んでいる様子が全くない
738 = :
自分が変なこと言って指摘されても「よくきづいたね」と初めから指摘される事がわかっていた装いをする図々しさがあるぐらいだからな
未知の分野を勉強する事を忘れ、自分の知識をひけらかすのが目的化してるんだろう
少なくとも、このスレではお呼びではない
739 = :
2chで情報を得るには知ったかぶりすればいいと聞いた事がある
740 = :
innerHTML の実装間での違いって主にどんなものがありますか?
741 = :
>>739
知ってる
742 = :
質問して満足する答えが得られなければ、自分の都合が良いように解釈して先の自分の発言が正しいと主張する人もいるんだよな..
743 = :
>>739
ばらすな
744 = :
>>743
「実は答えを引き出すために知ったかぶってたんだぜ」というポーズはいいから
745 = :
いずれにせよ好意的に接されることはないのであった
746 = :
ファイルのアップロードをしたいのですが対象ブラウザーにIE9があります。
FormData()はIE10からなので画面遷移させずにアップデートを行う場合はiframeなんかを利用するしかないでしょうか?
748 = :
あるjqueryオブジェクトがactiveElementかどうか調べる
一番いい方法は何ですか?
749 = :
$('#test').get(0) === document.activeElement
以上にいい方法ありますか?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.127 + (160) - [97%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [97%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.126 + (952) - [95%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
トップメニューへ / →のくす牧場書庫について