+ JavaScript の質問用スレッド vol.107 +
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。(なりすまし及び煽り防止のため)
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は
http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
ページをリロードすると、ブラウザがスクロール座標を再現しようとします これを止めさせようとscrollTopを0にしても、その後に再現してしまいます スクロール位置再現機能を止めるにはどうすればいいですか? と前スレで質問した者ですが、 (function(){ var body = document.body; var left = body.scrollLeft; var top = body.scrollTop; setTimeout(function(){ body.scrollLeft = left; body.scrollTop = top; }, 50); }()); このようなコードでブラウザが位置を再現した後に戻すことにしました しかし50msというのは妥当でしょうか? 目に見えない速さで動作するのがこのくらいの数字だったのでそうしたのですが 遅いPCだとどうなるのか・・ 100にすると、一瞬見えてしまいます
6 :
Name_Not_Found :2013/07/20(土) 22:19:48.82 ID:Nc2KqYvj
うるせーバカ
自己解決しました
どう解決したか書くのがマナーだよ まあいいけど
そこをなんとか
>>9 はニセモノです・・・
unloadではうまくいきませんでした。
もともとonloadで実行してますよ〜 ただonloadだけだと駄目なんですよ 表示した後に勝手に修正するので。 ちなみに実際自己解決しました スクロール値に変化がなかったら指定回数まではタイマーをセットしなおすという形です
いやいやonloadじゃないよunloadだよ ページが閉じられる時にスクロール位置が勝手に記憶されて困るっていう話なんだろ? だから・・・ 解決したんならいいけどさ
あ、unloadなんてイベントあったんですね typoと思ってましたw ありがとうございました
>>15 先生、尊敬します。ありがとうございました。
Operaは…まあいいか。
JSヒントがCSSStyleDeclarationを未定義と言ってくるんですが どうすればいいですか?
自分で型を登録できるJSヒントがあればいいんですが そういうのないですかね〜
21 :
Name_Not_Found :2013/07/21(日) 11:22:24.26 ID:xgDjHIfK
>>20 JSHintはオープンソースなんだから自分で作れば良いじゃん
うざい
>>21 ありがとうございます
jshintrってのが、自分用のJShintを作るやつみたいです
ただnode.jsで動かすみたいで・・腰が重い
JavaScripterはnode.jsも使えないといけないのでしょうか
node.js、express、jadeを入れて
node app.jsでサーバー起動して
http://localhost:3000/にアクセスしましたが \views\sadface.jadeがないと言われました
でも、エクスプローラで確認すると\views\sadface.jadeはあります
いったいどうしたら・・
25 :
Name_Not_Found :2013/07/22(月) 20:59:24.93 ID:BVuPwDRw
ブラウザ上で実行されたJavaScriptで、実行された関数(呼び出された関数)名を知る方法はないのでしょうか? ブラウザはどれでもいいです
26 :
Name_Not_Found :2013/07/22(月) 21:35:54.03 ID:pBhLcG+1
現在、下記のような感じで3つの文字列の中からランダムで1つを表示するようにしてるのですが、 もっと簡単になりませんか? myMesPhrase = new Array( "暑いですね", "夜更かしするな", "運動しよう" ); myRndPhrase = Math.floor(Math.random()*3); myMess = (myMesPhrase[myRndPhrase]); イメージとしては、上記を次の一文で済ませられるような感じが理想です。 myMess = random("暑いですね","夜更かしするな","運動しよう");
27 :
Name_Not_Found :2013/07/22(月) 21:39:13.48 ID:sq24EQJ8
>>26 myMess = ["暑いですね", "夜更かしするな", "運動しよう"][~~(Math.random()*3)];
ニョロニョロって小数点切り捨てるってことなの?
ビット反転の反転
30 :
Name_Not_Found :2013/07/22(月) 22:26:45.62 ID:sq24EQJ8
31 :
Name_Not_Found :2013/07/22(月) 22:29:19.31 ID:sq24EQJ8
おもしろい手法だけどコードとしてはMath.floorの方がいいな
これは始めて知ったわ
クロックフォードの言うように、 関数の最初に変数宣言をするようにしました 変数に初期値を代入しているものも、それに含まれますが、 関数の結果や配列やオブジェクトを代入しているものも含むべきなのでしょうか? 一応含めてみたのですが、 前処理の中に、本番の処理が混入しているような違和感があります
うん、違和感があるね
>>26 その random という関数を定義すればいい話ではないか。
可変長引数がキーワードね。
>>34 宣言だけ先にしておいたら、代入は後でもいいんじゃないの
クロックフォードがなんていうかは知らないけど
なんでそないCみたいな書き方せなあかんねん
>>35 ですね
>>37 それがベターですね
>>38 JavaScriptでは内部で「巻き上げ」が行なわれて冒頭に宣言された状態になるので、
実際の処理と記述を合わせるという意味があるようです
また変数に自覚的になることでコードが丁寧になる傾向がある気がします
ありがとうございました
うおおおおおおおおおおおおおおおおおおおおおおグローバル変数うおおおおおおおおおおおおおおおお
ブラウザ間の差違を吸収するためにjquery使った方がいいですか?
ハンドラの数を減らすために、 キャプチャリングフェーズのonchangeハンドラをdocumentに付けて一括で受けるなどしてるのですが jqueryはキャプチャリングの機能を持っていないブラウザでも キャプチャリングフェーズの再現をしてるのでしょうか?
もあべたーよw
おぎママはrubyが書ける
46 :
Name_Not_Found :2013/07/24(水) 14:46:40.87 ID:x3156z+F
focusにないのはバブリングのほうだろう。
>>46 キャプチャリングフェーズのないIEの場合はfocusinとfocusoutを使うんですね
ありがとうございました
>>45 このコード例でalertを使っているけど、これはあまり適当ではないですね
alertを閉じるたびにまたfocusが発生するので無限にalertが出る
しばらく原因が分からなかった・・
51 :
Name_Not_Found :2013/07/24(水) 20:16:46.62 ID:NX7SNNHd
jQueryの$.when内でfor文を使うことはできないのでしょうか?
$.whenを使って複数のAjax処理を引数を保持しながら行いたいのです。
$.whenは並列処理とありますが、直列で同期処理を行えますよね?
ご教示願います。
http://jsfiddle.net/HynTa/2/
i<5
54 :
51 :2013/07/24(水) 20:54:26.51 ID:???
あら。でもやっぱ期待した結果と違うわ。 hoge2が呼ばれた時点でhoge2の中の$.whenのdoneを実行したいんです。 つまり、console.log(jdata2.user.company);が毎回呼ばれるのが期待動作なのですが、 実行結果を見ると、console.log(jdata2.user.company);が最後にまとめて実行されています。 これをどうにかしたいです。要はやりたい事は $.when〜done($.when〜done($.when〜done()))..... みたいな事です。最初のajaxの返り値を以降の$.when〜doneで利用したいのです。 その際にはループ処理もあるので、同期を取りたいです。
>>51 このサイト、普通のtextareaなのにキーワードたけに色が付いているのですが
どうやってるんですか?
56 :
51 :2013/07/24(水) 21:04:32.33 ID:???
>>55 何となくは分かるが、知らん。
textarea 色 文字でぐぐって。
最近、githubのtextareaの色文字のホットエントリーを見た気がする。
>>51 JavaScriptの非同期処理を誤解している。
hoge2() のなかの.done()はforループを抜けるまで呼び出されることはないよ。
> for(var i=0;i>5;i++){
でも、ループになってへんけどね。
それはともかく、hoge2のなかの.done()のなかからhoge2を呼べばいいんじゃないかな。
function hoge2(jdata, i){
$.when(hoge()).done(function(jdata2){
if (i > 1) {
hoge2(jdata, i - 1);
}
});
}
hoge2(jdata, 5);
な感じかな。
hoge2呼び出しの前後に何かしたい場合は工夫が必要だが。
jqueryだとdocumentにmousemoveやmouseoverを付けてもハンドリング出来ないのは何故ですか? bodyに付けると出来ますが。 素のJavaScriptの時はdocumentに付けても問題ありませんでした
>>51 i<5に直すのと全てのlogに+' '+new Date().getTime()をつけてみると、
クライアントでループ回すのよりサーバ応答に時間がかかってるのがわかるよ
60 :
51 :2013/07/25(木) 09:13:29.78 ID:???
>>57 なるほど。ループが使えない?から再帰処理で回しているんですね。
http://jsfiddle.net/HynTa/7/ 条件分岐やループを含んだ複数の入れ子構造のAjaxになるだけで、こんなにも難易度が上がるなんて思ってませんでした。ロジックが直ぐに思い浮かぶ人には脱帽です。
正直、実際の問題はこれよりも遥かに処理が複雑なので、実装できそうにないですw
ループ前にフラグ設置してajaxが正常に終わったらフラグ変更して、その後に設置したsetTimeoutでフラグ判定するって方法で処理を止めるのは邪道ですかね?
61 :
Name_Not_Found :2013/07/25(木) 11:16:45.02 ID:kVnOszQ5
>>55 ,56
いつからtextareaだと勘違いしていた?
コンソールで確認してみ?
62 :
51 :2013/07/25(木) 11:44:54.06 ID:???
>>61 divとpreタグでちまちまと構成されてるのか…凄い
textareaのdisplayはnoneで CodeMirrorクラスのdiv内で実際の表示はしてるんですね textareaじゃないのになんで編集できるんだろう?
64 :
Name_Not_Found :2013/07/25(木) 12:25:34.91 ID:kVnOszQ5
contenteditableでおググりください
>>60 setTimeoutも同じ事、forループを抜けるまでは実際その時間が来たとしても割り込まれないよ。
やりたいことが、ajax呼び出しを順番にやりたい、前の呼び出しが終わってからでないと呼び出してほしくない。
ってことなら、再帰に似た感じのを使うしかないと思う。
ajax処理の前後に何かしたい場合は、その部分もコールバック関数にして、用意しておく感じで。
http://jsfiddle.net/HynTa/8/ 例えばこんな感じ。
ジェイクエリーの$もグローバル(あるいはそれに準じた)変数なので 関数内で何度も呼び出す場合はローカル変数に代入した方がいいですよね?
jQueryの本体はグローバル変数jQuery
68 :
51 :2013/07/25(木) 13:26:18.29 ID:???
>>65 setTimeoutで試行錯誤してましたw(当然ながら実現できず)
>やりたいことが、ajax呼び出しを順番にやりたい、前の呼び出しが終わってからでないと呼び出してほしくない。
>ってことなら、再帰に似た感じのを使うしかないと思う。
これが聞きたかったです。
サンプルのコードも非常に参考になりました。勉強になりました。
本当にありがとうございました。
$.when、$.Deferredとかでググると直ぐに色々と基本的な事や仕様は見つかりますが、
Ajax入れ子のループや分岐の方法が見つからなかったので助かりました。
あとは自力で頑張ってみます。
>>58 この件ですが、
$(document)と書くべきところを
$('document')と書いていただけでした
バーカ
webアプリ内でURLを変えずに戻ったり進んだりするため、 思わず「戻る」ボタンを押してしまうことがあります 戻るボタンを押した時に、本当にページを離れるかを聞いて、 いいえと答えた時には留まるようにしたいのですが、どうやればいいのでしょうか?
72 :
51 :2013/07/25(木) 20:41:08.65 ID:???
だが、やり過ぎるとウザい。 「ログアウトしますか?」なんかもそうだが。
>>72 ありがとうございます
unloadではうまく出来ませんでしたが、beforeunloadで出来ました
最近jsfiddleがそれやってて地味に使いづらい
>>73 たしかにそうですね
戻るボタンを無効に出来ればいいのですが
webアプリは新しいウィンドウか新しいタブかで始めたらいいんじゃね?
なるほど いいかもしれません ありがとうございました
scriptを使ったリンクボタン2つ(A,B)を置きたいのですが、
AとBはそれぞれは単独でちゃんと動くのですが、2つ一緒に置くとAが動きません。
質問テンプレの使い方がよく分かりませんが、とりあえず置いてみます・・・
http://jsbin.com/acodiw/5/watch (上のスクリプトがwindow01.js、下のスクリプトがwindow02.jsです)
初心者で申し訳ないのですが、よろしくお願いします・・・
すみません、勘違いでした。
81 :
79 :2013/07/26(金) 08:51:07.59 ID:???
消えてしまったので直貼り・・・ <!DOCTYPE html> <html lang="ja"> <!--■■■--> <head> <meta charset="UTF-8"> <script type="text/javascript" src="prototype_window/scripts/prototype.js"></script> <script type="text/javascript" src="prototype_window/scripts/window.js"></script> <link href="prototype_window/css/default.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="prototype_window/scripts/window01.js"></script> <script type="text/javascript" src="prototype_window/scripts/window02.js"></script> </head> <!--■■■--> <body> <input type="button" id="window01" onclick="openWin()" /> <input type="button" id="window02" onclick="openWin()" /> </body> </html>
82 :
79 :2013/07/26(金) 08:59:15.37 ID:???
↓window01.js window.onload = function(){ document.getElementById("window01").onclick = function(){ multiWindow.open("win01", "window01", 80, 100, 320, 240); } } var multiWindow = { open : function(winID, wTitle, x, y, w, h){ var win = new Window(winID, { title: wTitle, className: "dialog", top:y, left:x, width:w, height:h, zIndex: 100, resizable: true, draggable:true }); win.setDestroyOnClose(); win.show(); win.setHTMLContent("window01だよ"); } } window02.jsは上記の01部分を02に置換してあります。 分かる方いたらお願いします・・・orz
83 :
Name_Not_Found :2013/07/26(金) 09:43:41.81 ID:2Ru3jZdx
window.onload = function(){ これがいかん
>>79 window.onloadが2回呼ばれる事になるから01.js(これがAかな?)が02.js(B)で上書きされている。
jsファイルを分けるならwindow.onloadイベントは書かないか、window.onloadイベント内にAとBの処理を2つまとめて書く。
85 :
Name_Not_Found :2013/07/26(金) 10:12:59.59 ID:as8mgTxI
てかaddEventListener使いなよ
less.jsで変換された後のCSSを確認するのはどうやればいいんですか?
>>87 CSSで出力できるんですね
ありがとうございました
$('body').scrollTop()だとIEではスクロール位置が取得できません IEではbodyがdocumentElementになってるみたいで。 jqueryでブラウザを気にせずにスクロール位置を取得するにはどうすればいいですか?
90 :
Name_Not_Found :2013/07/26(金) 20:56:18.33 ID:2Ru3jZdx
$('html,body').scrollTop();
91 :
Name_Not_Found :2013/07/26(金) 20:58:37.92 ID:bYZ9P0f3
>>83 ,
>>84 ,
>>85 window.onloadを1つにして、function func00()とfunction func01()に分けることでなんとか動作してくれました
助言ありがとうございました(^ω^)
>>90 ありがとうございます
カンマは複数の要素をあらわすセレクタなので、
html要素とbody要素の両方からscrollTopを取得するっていう意味になるんでしょうか
片方にしか属性がない場合は分かりやすいけど、
両方に属性があってしかも値が異なる場合はどうなるんだろう
どうなるんだろう。じゃねーよ。 試せ!
オライリーのjQueryクックブックでは$(document)使ってますね $(document)もscroll操作に使えるけど firefoxだけは、読み込みはできるけど書き込んでも反映されない (>_<) jQuery使ってもこういう面倒くささがあるとは
firefoxだと反映しないのではなく、 スクロールには反映してるけどスクロールバーには反映しない、でした ただそれもスクロール位置再現機能を阻止した場合だけそうなるようで 基本的には$(document)でいいのかな
97 :
Name_Not_Found :2013/07/27(土) 02:21:47.01 ID:BGZe5nQR
すみません、また質問させてください。 ボタンを押した時に表示されるページ内ウインドウのアドレスをどこに入れればいいでしょうか? function func00(){ document.getElementById("window01").onclick = function(){ multiWindow.open("win01", "window01", 80, 100, 320, 240); } var multiWindow = { open : function(winID, wTitle, x, y, w, h){ var win = new Window(winID, { title: wTitle, className: "dialog", top:y, left:x, width:w, height:h, zIndex: 100, resizable: true, draggable:true }); win.setDestroyOnClose(); win.show(); win.setHTMLContent("window01だよ"); } } } よろしくお願いしますm(_ _;)m
98 :
97 :2013/07/27(土) 02:35:43.13 ID:???
win.setHTMLContent("window01だよ"); を win.setURL にするだけで直りました。お騒がせしました。
今日一日でJQuery マスター出来る方法教えてくれ。
プログラミングに王道なし。
textareaの文字列選択を解除するにはどうやればいいですか?
知らんがな
他のブラウザだとdocument.bodyなところを、IEだとdocument.documentElementが入ってたりします 当然=== document.bodyの判断が通りません jqueryを使って、うまいこと抽象的に判断する方法はないでしょうか? isRootNode的な
知らんがな
$([document.body,document.documentElement]).index(target) > -1 これで出来ました\(^o^)/
ありがとうございます 副作用として外させるのではなく、それ自体を目的としたコードにしたいのですが そういう方法はないということでしょうか
副作用? 言っている意味がわからないけど、とりあえず.blur()を試してみて。 こういうのとは違う?
調べたところプログラミングにおける副作用は、別の意味でした blurはフォーカスを外す機能で、 選択範囲がキャンセルされるのはそれに不随した結果ですよね。 不随した現象を目的として関数を呼ぶのはキレイではないので 選択範囲を外す機能自体を直接的に実行したい、ということです textarea.selection.cancel()的な
なるほど。 ちょっとググってみると、クロスブラウザの問題があるけど、存在するようだよ。 ただし、textareaだけじゃなくて、地の文の選択状態なども解除しちゃうが。 IE以外だと window.getSelection().removeAllRanges(); らしい。あとは自分で調べて。
当該選択範囲が textarea の中にあるか調べてあるときだけ解除すればいいんでは。
>>109 document.writeでtextareaを書き直す
ありがとうございました 調べてみたところgetSelectionは、IE以外だと地の文だけが対象になるようです Window オブジェクトの getSelection() メソッドは、 選択されたテキストが <input> フォーム要素や <textarea> フォーム要素中の場合は、 選択されたテキストを返しません。 (JavaScript第六版) そしてフォーム要素で選択範囲をなくすのは、 エレメントのselectionEnd属性をselectionStart属性と同じにするだけでした textarea.selectionEnd = textarea.selectionStart; こんな感じで
>>113 chromeは
>>110 ので解除されるけど、firefoxでは解除されないな。
firefoxが仕様通りってことかな。
>textarea.selectionEnd = textarea.selectionStart;
これだと選択範囲は消えるけど、カーソルは残るね。いいのか?
フォーカスそのままで範囲選択だけをキャンセルしたかったので、 カーソルは残る方がいいです
同じフェードアウトのコードでも IEは他と比べてじわっ・・と消えます タイマーの挙動が違うのかなぁ 気持ちいい数値を調整しているのに、ブラウザごとにタイミングが異なるのは困ります こういう問題どう解決しますか
118 :
Name_Not_Found :2013/07/28(日) 04:47:51.34 ID:kpIvbtNg
animationを使えばCSSだけでもできるんですね 要素のopacityを一つずつ変えていくよりコストが低そうで良さそうです ありがとうございました
CSS3はGPUの支援を受けられるから同じような動きでも setIntervalなんかでやるより滑らかに表現できることが多いからオススメ 実際にやってみると違うのがわかるよ
スクリプトでやるならrequestAnimationFrameを
指定したセレクタの指定した属性を参照する、ということがlessには出来ないっぽいですが それができるlessみたいなプロダクトありますか? hoge { left: 100px; } fuga{
途中で書き込んでしまった hoge { left: 100px; } fuga{ left: {hoge.left} } こんなイメージです
>>124 指定した箇所のリンク色だけ変更したいと思っています。
a:link
{
color: #15c;
}
.footer
{
width: 100%;
padding: 2px 0px 2px 0px;
background-color: #cbc9cc;
color: #2b2b2b;
font-size: 90%;
font-weight: bold;
}
現在はこのようになっていますが、これだとページ全体のリンク色が指定されてしまいます。
heading内だけリンク色を変更するにはどのようにすればよいのでしょうか?
Math.pow(,)を使ってちょっと複雑な計算をしたいのですが、結果にNaNが出てしまいます。 やりたいことはこのような計算なのですがうまくいきません。 aaa = 10; bbb = 12; ans = 1 - Math.pow((aaa - 1 )/ aaa ,bbb) * 100; ちゃんと数値として認識されて計算処理ができればうまくいきそうですが、やり方が分かりませんでした。 どのように記述すればうまく計算できるでしょうか?
127 :
Name_Not_Found :2013/07/30(火) 06:44:31.69 ID:gh/ZkKwQ
>>126 aaa と bbb を数値に変換できてないのでは。
やり方はググれ。
>>126 まずはpowの中身だけ実行してみるとか、
pow(2, bbb)とかを実行して、
どこにバグがあるのか確かめなよ。
NaNでだろ〜ぉ、NaNでだろ〜ぉ、 完全に文字列(数字以外の値)を入れるとNaNだね。
Cみたいな性的変数は使えますか? var count=0; function getcount(){ count++; return count; } みたいなコードを使ってるんですが、count変数を関数のなかにとじこめたいです
>>126 どこかで 0 / 0 になってないか。
>>131 //関数プロパティ(外部から書きかれられてしまう)
getCount.count = 0;
function getCount(){
return ++getCount.count;
}
//クロージャ
getcount = (function(){
var count = 0;
return function(){return ++count}
})();
for(var i=0; i<3; i++){
alert(getCount() + " : " + getcount());
}
その時点で必要でない要素はvisibilityをhiddenにしていたのですが 表示しないDOM要素が増えてくると、動作が遅くなってきました ハンドラを付けてもおらず、表示してもいないDOM要素でも、 増えると速度低下を引き起こすのでしょうか? DOMをキャッシュ的に使うのは得策ではなく、 適時DOM要素を作成したり除去したりするべきなのでしょうか?
135 :
Name_Not_Found :2013/07/30(火) 18:07:09.20 ID:gh/ZkKwQ
>>134 どういうことをしようとしているかにもよると思うけど…
> DOMをキャッシュ的に使う
とは具体的にどういうこと?
前もってDOM要素を作成しておいてすぐに表示できるようにしておくという意味でした display:noneなら速度低下しませんか? それでやってみます ありがとうございました
ajaxで3箇所にリクエストして全ての応答が終わった段階で画面に表示したいのですが どのようにして判定するのが一般的でしょうか?
139 :
Name_Not_Found :2013/07/30(火) 23:29:34.09 ID:gh/ZkKwQ
>>138 Deferred みたいなの導入するとか
>>139 おおこんなのがあったんですね
ありがとうこざいました!
>>133 クロージャのなかの変数って永遠に保持されるって思えばいいの?
ありがとう
onloadって、1回使われたら空になるの?
143 :
Name_Not_Found :2013/07/31(水) 11:21:31.92 ID:YSblZ2ok
空ってどういうこと?
>>143 imgにonloadでalert()等を仕込むと、表示完了後にダイアログが出る
そのあと、srcに別画像を指定しても、もうonloadが呼ばれない
src設定前に改めてonloadを指定しておくと呼ばれる
この挙動から、onloadは一回使われたらカラになるのかな〜と。
空になりたい 自由な空へ
146 :
Name_Not_Found :2013/07/31(水) 11:46:13.79 ID:YSblZ2ok
147 :
Name_Not_Found :2013/07/31(水) 13:46:32.12 ID:S41nTrD2
IEはキャッシュしてるとダメみたいなことがあったかもしれん
キャッシュ対策で?と時刻つけたりしても駄目っぽい IE以外で確認したら何か分かったりするかな ファイヤーフォックスでもインストールしてみるか
NaNって何て読むんですか?ナン?
150 :
Name_Not_Found :2013/07/31(水) 18:27:10.85 ID:H5HG5md1
ページスクロールをスムーズにするjavascriptを入れてるんですが、 <form action="#shita">、<input type="submit" value="計算">を使って ボタンを押すと同ページの下に行くようにしたいのですがどうすればいいでしょうか? PHPを使って計算をして結果を下に表示したいと思ってます。 通常のページ移動はスムーズになるようになりましたが、ボタンを押した際の移動が スムーズになりません。
>>150 javascript smooth scrollでググれ
154 :
Name_Not_Found :2013/07/31(水) 19:57:30.45 ID:H5HG5md1
>>152 それ入れても<a href="#top">▽下</a>で<a name="shita">にはスムーズにできるんですが、
submitにはそれが効かないってことです。
ページが切り替わった時に自動で上から下にするするっとスクロールできると実現しそうなのですが。
当たり前だ。ちゃんとスクリプトを読みなさい
156 :
Name_Not_Found :2013/07/31(水) 20:18:28.86 ID:H5HG5md1
当たり前もなにも、それじゃ出来ないことがわかってる上で submitの時に同じようにスクロールできる方法を聞いてるんですが。。
スクリプト読めば何を追記すべきかわかるだろ?
158 :
134 :2013/07/31(水) 20:48:22.04 ID:???
displayをnoneにしたら確かに高速化しました 前もって作っておくのをやめ、柔軟に生成と除去をするようにしたら更に高速化しました DOMツリーをなるべく軽い状態にしておくのはDOMアクセスのパフォーマンスに重要なようです
159 :
150 :2013/07/31(水) 20:58:20.49 ID:H5HG5md1
>>153 eval((function(){a="Scroller={speed:10,8dC.;d.while(dC.+C.}} J8N;
d=5;&&M4M}d&&dM4dM}%4%} 0J8a,F4(F,
[email protected] +F7Jend8e66.cancelBubble=true;6.Value=fa@;}&&(E(7J8di=Hner3||5.G3;
hN.3;a=(Ed>ah-d>i7e@{-(h-d)7}e@{a=a+(d-a}To(0,aEa==a}=aJHit8KwHdow,A,A7,A82P;
l=9;d=locatiP;D&&D.HdexOfL#)!=-1&&(l/+l=C)Kl,Gck,endEl.PGck=2l=this.hash.substr(1E9.name==l;
i=setILL+(9)+),107}}}}}};Hit()",b=48;while(b>=0)a=a.replace(new RegExp("%23456789@ACDEFGHJKLMNP".charAt(b),"g"),("\042Scroller.entfunction(offsetParscrollwindow.returndocumattachEvntervala=.getElemsByTagName(a);
if(offsetTop){for(i=0;i<a.length;i++.pathnamea+=Math.ceil((d-ae.stopPropagationTopa.addEvListenerbody)/speede.prevDefaultclearI(i)pageYOffsetend(this);
Height .Elemev)}:a[i]lseload=dl.href);b,dcliin},((.=.=C||on".split(""))[b--]);return a})())
160 :
150 :2013/07/31(水) 21:00:00.04 ID:H5HG5md1
これだとsubmitだとスムーズにならず、またonloadで#shitaを指定してもスムーズになりません。 できればsubmitでページが切り替わった時にもスムーズに上から下へスクロールされるようにしたいです。
そこに答え書いてあるじゃんw
ヒント while
163 :
150 :2013/07/31(水) 21:57:20.11 ID:H5HG5md1
ちょっと見てみたけど自分には無理でした。 答えを教えてもらえないんでしたら諦めます。ありがとうございました。
他の人はじっくり見て答えてくれたのに
165 :
150 :2013/07/31(水) 23:59:31.73 ID:H5HG5md1
答えられる人がいたら教えてもらいたかったんですが いなきゃしょうがないですよ
現在作っているスクリプト 他のブラウザでは問題ないのですが、 IEでは、画面をクリックをすると何故かウインドウが最小化してしまいます JavaScriptで画面の最小化なんてしたくても出来ませんよね 原因がまったく分かりません 何がどうなればこんな現象が起きるのでしょうか?
原因が不明なのでソースの切り出しようがないんです
最小化ではなく、ウインドウが最背面に行く、でした 怪現象なのは変わりませんが・・
document.activeElement.blur() どうやらこれが原因でした ウインドウ自体がactiveElementだったらウインドウ自体がblurされる的な動作のようです 失礼しました
その後の検証で ieの場合、bodyをblurするとウインドウが背面に行く 他のブラウザでは何も起きない ということが分かりました blurがブラウザ内で完結していないieの挙動はどうなのか。。
もっと調べてから質問しろ
>>ID:H5HG5md1 夏休みの宿題か何か知らんが、言動が最近のゆとりDQNそのものだな もしこれで社会人だったら、もう人間失格としか言いようがない
>>173 そういうことはチラシの裏にでも書いてくれ
自分に何が足りないかすらわからないんだよ だから誰も答えない
177 :
Name_Not_Found :2013/08/01(木) 10:46:37.40 ID:0ALr9Nw2
>>163 いま書けてるとこまで貼ってみて
どこがおかしいかわかるかも
>>165 ページ読み込み時に
animateで動かせば良い。
もっと煽ればアホが答えてくれるよ
>>156 submit処理をAjaxでやればできる
CSSのtransitionを使うとき、完了時に実行したい関数がある場合は transitionのdurationにあわせてsetTimeoutで実行するのでしょうか?
182 :
Name_Not_Found :2013/08/01(木) 13:28:44.02 ID:jkQMjz6H
>>182 イベントが発生するんですね
ありがとうございました
フェードイン/アウトをtransitionでやったら、要素が多くてもなめらかになりました ありがとうございました
186 :
Name_Not_Found :2013/08/01(木) 14:47:02.16 ID:oo1t79Ru
ユーザーの<input type="text">への入力に対するサジェストを作っています とりあえず、馬鹿正直にキーアップでサジェストを出すことはできていますが アクセスが増えたら、サーバ側がしんどいことになりそうな気がします 実際に作られた方で、こうしたほうが良いというアドバイスがありましたら サーバ側、クライアント側問わず教えて頂けますでしょうか
187 :
Name_Not_Found :2013/08/01(木) 14:53:15.91 ID:jkQMjz6H
>>186 一定時間(たとえば500ms)入力がなかったらはじめてサジェストを取りに行くとか
>>184 あちこちで罵詈雑言を撒き散らしてるゴミ厨は黙ってろ
189 :
Name_Not_Found :2013/08/01(木) 15:52:27.69 ID:oo1t79Ru
>>187 ああ、なるほど
すこしレイジーにするってことですね
>>189 どれだけリアルタイムにサジェスト候補を更新するの?
語録はテキストで定期的に書き出してjs側ではテキストを読みいく。
postがあったときに初めてサジェスト候補に入るんだろうからそれで良いんじゃない?
サイズが大きくないならjsファイルとして読み込ませてしまってもいいし。
それならサーバーにさっぱり負荷はかからない。
>>189 そもそもブラウザにキャッシュ機能があるから
htmlのF5アタックみたいな負荷はないよ。
作り方次第で語句ファイルを毎回サーバーに読み込みに行くとかないから。
質問からするに、サーバー側で語句候補を決めてブラウザに送信しようとしていない?
ドラッグでサイズが変更できる要素を作る場合、 要素の周辺にclass等を設定した別要素を配置することになると思うのですが それはどうするのが一番いいのでしょうか? 今はtableでやっていますが、もっといい方法があるんじゃないかという気がしています
193 :
Name_Not_Found :2013/08/01(木) 16:06:13.18 ID:oo1t79Ru
>>190 ,191
ユーザーが投稿につけるタグ、のようなもので
似たような語彙の蓄積を避けるのが、サジェストの目的です
余程の量にならない限り
一度にまとめてダウンロードしておいた方が賢いですね
相談してよかった
ありがとうございました
>>192 >ドラッグでサイズが変更できる要素
>周辺にclass等を設定
なにか面倒なこと考えていない?
クリック箇所をjqueryでいうところのthisに出来るようして
thisのwidthやheightを変更すれば良いよ。
サイズ変更自体は、要素のwidthやheightの変更ですが この部分が掴めると知らせるためのマウスの形状変更のためには cursorをn-resize、s-resize、w-resizeなどに設定した別要素が必要になるのでは?
>>195 カーソル変更用のクラスか。
そりゃ仕方ない。
でもhtmlはスレチなんだよね。
なんだその意見w JavaScriptの実装に関する質問なんだからHTMLが絡んでも問題ねーわ
絡んでないw 「ここ」にこのカーソルってjsで指示するのならわかるが、 上のはどうやって「ここ」を作るのかって質問だ。
199 :
Name_Not_Found :2013/08/01(木) 20:39:03.97 ID:jkQMjz6H
>>195 ::after で出来る気がするけど。
202 :
Name_Not_Found :2013/08/01(木) 23:13:24.06 ID:oo1t79Ru
>>198 ドラッグするときに掴む「ここ」を
JSで生成するのがいいのか、HTMLに直接書いとけばいいのか
>>192 の用に<table>要素を使うのか、はたまた別の要素か
ってのは、HTMLだけ論じている場所よりは
普段JSやウェブアプリ書いてる人に聞くほうがあってる気はする
ほんで、自分は<div>要素をJSで生成して置くのが良いと思う
くそどうでもいい
204 :
Name_Not_Found :2013/08/02(金) 00:04:38.11 ID:NW71mrpH
クズwwww
自演荒らし乙
モーダルウインドウを出した時に、他の部分が少し暗くなる処理をよく見ますが あれはどうやってるんですか?
α0.2くらいの黒を上においてんじゃない
ありがとうございました
以下のコードで、暗幕をフェードインで暗くしようとしたのですが 瞬時に暗くなってしまいます どこが悪いのでしょうか? [CSS] #blackout { position: fixed; left: 0; top: 0; width: 100%; height: 100%; background-color: #000; opacity: 0; transition: opacity 1s linear; -webkit-transition: opacity 1s linear; -moz-transition: opacity 1s linear; -o-transition: opacity 1s linear; } [JS] var div = document.createElement('div'); div.id = 'blackout'; document.body.appendChild(div); div.style.opacity = 0.6;
出たよw 白々しい奴だよな全く 自分で努力してから来い
211 :
Name_Not_Found :2013/08/02(金) 08:38:19.37 ID:5dlkoL6j
>>209 せめてtransitionについてググったりはしたんだろうな
212 :
Name_Not_Found :2013/08/02(金) 12:15:02.09 ID:Pm2C6cAf
スタイルシート側に書かないといいますと、すべての属性をJSで動的に設定するということですか?
214 :
Name_Not_Found :2013/08/02(金) 13:33:00.51 ID:Pm2C6cAf
そうそう ベンダプレフィクスをすげ替えるのがちょっと面倒だけど スマホでヌルヌル動く系のJSは大抵そうやってるから 適当なのをダウンロードしてコード見てみるとわかりやすいと思う
それはスクリプトとスタイルを分離しないという事だからやめたほうがいいよ やるなら、CSSにクラスを作っといて、JSではクラスを切り替えるようにしたほうがいい
216 :
Name_Not_Found :2013/08/02(金) 14:14:10.68 ID:Pm2C6cAf
そうかね?
いやそうかもね
自分も
>>209 と同じことになって、今はこうして解決している
というだけだから、もっと良い方法があったら教えてあげて…
わかりやすいw
[CSS] #blackout { position: fixed; left: 0; top: 0; width: 100%; height: 100%; background-color: #000; opacity: 0; visibility: hidden; transition: opacity 1s linear; -webkit-transition: opacity 1s linear; -moz-transition: opacity 1s linear; -o-transition: opacity 1s linear; } [JS] var blackout = document.getElementById('blackout'); blackout.style.visibility = 'visible'; blackout.style.opacity = 0.6; 色々検証していった結果、これでできました 変更点は、blackoutを前もってHTMLに記述しておくようにし、 要素のアクティヴィティをvisibilityで操作するようにしたこと 何故か、要素をcreateElementで作ると、transitionが発動しないようです display:noneにしていたものをdisplay:blockにしたとしても、発動しません まとめるとDOMツリーに追加されたばかりの要素の属性を変えても発動しないようです これは意味の分からない動作ですが、そのようです アドバイスありがとうございました
他の部位でjsミスってたらぜんぶアウトか。真っ黒ページ
いやそうはならない
釣れたw
そりゃそうだ。ページが表示されないのをベンダーのせいにされちゃかなわんからな
リンクタグのクリックを検出してURLを取得したいのですが、aタグの中にimg等の要素が入っているとその要素がクリックされた事になってしまいURLを取得できません。 document.addEventListener("click",hoge,false); function hoge(evt){ if(evt.target.tagName == "A"){ //aタグが子ノードを持っているとそのタグがtagNameになってしまう。 } } 確実にリンク先のURLを取得するにはどうすればいいでしょうか?
子がいれば親を指定する
documentにじゃなくてaにaddEventListenerすれば
querySelectorで:focus取得するとか?
228 :
Name_Not_Found :2013/08/02(金) 19:26:22.92 ID:n+cB8WCW!
>>225 親も子も1つとは限らないので、できなくはないですがかなり面倒なコードになりますね...
>>226 aにリスナー付けてもクリックした要素が返されるので変わりませんでした。
>>227 querySelectorのa:hoverで解決しました。
皆さんありがとうございました。
>>222 これって
var x = a.clientHeight;
でDOMを再計算させてるのか
なんというバッドノウハウ
コメント入れておかないと何してるか分からないな
>>228 a:hoverだとEnterしたとき関係ない要素拾ってきてしまうのでは
>>230 どういう意味ですか?
クリックのイベントなので関係ないと思うのですが
>>228 キャプチャ使ってaでstopPropagationじゃダメ?
キャプチャリングフェーズで呼び出しても、targetプロパティは変わらない
>>229 そういうこと。
別に関数を定義して、そこでやっておくのが無難かな。
jqueryでbodyにappendする場合 $('html')に追加するのと$('body')に追加するのと どちらがいいですか?
>>233 currentTargetってなかったっけ?
それキャプチャリングフェーズの必要なくね
>>222 この方法で動的生成で出来ました
ありがとうございました
あごめん必要なかったね
chromeアプリってJavaScriptで動いてるんですよね? ウェブ画面上の色を拾い上げるカラーピッカーのアプリがありますが、 あれってどうやってるんですか?
html要素はheadとbodyを含み、 ほとんどのDOM操作はbodyが対象なのだから、$('body')を使うべきだと思いますが jqueryの解説サイトとかに$('html')が出てくるのはなんなんですか?
DOM要素が増えるほどDOMへのアクセス速度が落ちるということは CSSの計算量も考える余地があるということだと思います .hoge{} #hoge{} 等と指定するよりも div.hoge{} div#hoge{} などと指定する方が、条件文的に速く解決できると思いますが、 実測でも変わって来ますか?
>>243 特に .hoge{} をいっぱい使うべきですよ
>>244 .hogeの場合は、すべての要素から.hogeを探す
div.hogeの場合は、すべてのdivから.hogeを探す
条件を早い段階で絞りこむほど検索コストが下がると思いますが
なぜ.hogeの方が速いと考えますか?
二度手間だから
>>246 ここJSに関係無いCSSの話はスレ違いだからね
はやく.hoge{}満載のCSSを書く作業に戻れ
>>242 head要素内でスクリプトを読み込んでるとかじゃない
252 :
Name_Not_Found :2013/08/04(日) 03:35:48.85 ID:+HEqYRF/
input type="number"のフォーム部分のスピンボタンを押した時にその値に応じて 計算し、リアルタイムで計算結果を表示するものを作ろうとしています。 フォームの値を取り出す場合にこれまでは aaa = Document.form2.AAA.value; でやってたんですが、インプットnumberで同じことをやろうとするとうまくいきません。 <input type="number onchange="keisan"> イベント属性はonchangeを使っていますがこちらは動作しています。 おそらく値の受け取りが出来ていないのですが、HTML5のinput numberだと何か違うんでしょうか?
253 :
Name_Not_Found :2013/08/04(日) 03:37:01.41 ID:+HEqYRF/
keisan()でした。
>>199 after擬似要素で複数の要素を配置することって出来るのでしょうか?
左上〜右下まで計8個の要素を追加する必要があります
>>192 の件ですが、
jqueryUIでもdivを使っているようだったのでdivでやってみました
table、tr分のタグが減り、また要素のネストも減ったのでよかったです
ありがとうございました
DOM要素のpadding値を取得するにはどうすればいいですか?
258 :
Name_Not_Found :2013/08/05(月) 01:30:45.08 ID:8Ghbapqr
styleプロパティを見んさい
>>252 Chromeでonchange内で普通に値が読めたよ。ここに書いてないところに問題があるんじゃない?
data:text/html,<input type=number onchange="alert(this.value)">
>>258 ,259
ありがとうございました
条件分岐が面倒なのでjqueryでやってみました
スクロールの発生を止めることって出来ますか? onscrollでpreventDefaultしても無理でした onscrollはscrollが発生した後なので駄目なのでしょう scrollが発生する前のハンドラがあればいいのですが・・
?
transitionによるフェードイン/アウトの罠を発見しました transitionendでフェードが終わった後の処理を呼び出すようにしますが フェードする対象が何もない時には、transitionendも呼び出されず、処理が続かない これはsetTimeoutでのフェードイン/アウトでは起こりえないことで transitionでやる場合フェード対象が存在するかをまず最初に調べなくてはいけないのですね
文章量に従ってオートリサイズをするtextareaで、 サイズ調整前に一瞬スクロールするが見えてしまうので、それを止めたいのです 今は一行多くすることでスクロールが見えるのを防いでいますが、 この予備の一行をなくしたいなと思いまして
計測用textareaに代入する文字列に、textareaのvalue+"■"を設定することで スクロール発生一文字前にリサイズさせることが出来ました\(^o^)/ ありがとうございました
と思ったけど改行を入力するとスクロールが見えてしまいました でもリサイズを前もってするというアプローチで何とかできそうです
キャプチャリングフェーズのkeydownですらtextareaに改行が入力されてから発生するので やっぱり駄目でした・・
まとめブログを作っており、レスのアンカー「>>」をブログ上にポップアップで出力するようにしたくて、
ttp://minisoku.blog97.fc2.com/blog-entry-1568.html ttp://blog-imgs-29-origin.fc2.com/m/i/n/minisoku/popup_sample2.html こちらのサンプルを参考にやってみたのですが、その中のポップアップを出力する位置がどのレスも同じ位置に出てしまうのです。。
丁度サンプルの29行目の
window.document.onmousemove = getMousePosition; // マウスの座標をx, yに取得
をコメントアウトして出力した場合と同じになります。
原因わかる方いらっしゃいますでしょうか。。
ちなみに、使ってるブログはライブドアブログで、html側の記述では
<div id="ID" style="visibility: hidden; position: absolute;"></div> <!-- ポップアップ -->
<div id="thread"> <!-- ポップアップ -->
<$ArticleBody$>
<IfArticleBodyMore><a name="more"></a><div class="article-body-more"><$ArticleBodyMore$></div></IfArticleBodyMore>
</div>
<$RelatedArticles$>
<$ArticleTagsList$>
</div><!-- articleBody End -->
<!-- google_ad_section_end -->
</div> <!-- ポップアップ終わり-->
と記事のボディを挟むように記述しました。
>>267 スクロールバーを消しておくっていうアプローチはダメなのか?
オートリサイズするのでスクロールバーは消していますが、 スクロールバーがなくてもスクロールは止まらないんです
すまん。スクロールが見えるのを防いで…と誤読した。 バーが見えるとかじゃなくて、入れてる文章が一瞬動くのが嫌なのね。
>>271 そのサンプルはなんか変。
とりあえず、
>window.document.onmousemove = getMousePosition; // マウスの座標をx, yに取得
を関数の外に出してみてはどうか。
276 :
Name_Not_Found :2013/08/06(火) 03:28:18.32 ID:QemhDVb0
>>265 当たり前のような気がするが、何が罠なん?
277 :
274 :2013/08/06(火) 03:29:33.04 ID:???
>スクロールが見えるのを防いで…と誤読した。 スクロールバーが見えるのを防いで…と誤読した。
>>275 やってみましたが同じ結果になりました。
ポップアップは常に<$ArticleBody$>の一番左上(0,0)座標?に出てるみたいです。
>>276 当たり前だと思うのはあなたが未熟だからでしょうね
もっと煽らないと出てこない
煽りではなく単なる事実ですよ どういう場合に問題になるかを想像するためには、実際に製作した経験が必要で それがない人にそれを想像させるのは不可能ですから
もっともっと
こういう慇懃無礼型は疲れるわw
chromeでHTMLソースを見ると、 <autoscroll_cursor hidden="" class="vertical"></autoscroll_cursor> というタグが埋め込まれているのですが、 これは何でしょう? ページを開いた時の自動スクロールを制御するものかと思ったりしますが ネットでも情報が少ないです
>>282 transitionendじゃなくてもっといいものがあることをみんな知っているんですよ
>>285 の件ですが、素のchrome portableで確かめたらそのようなタグはありませんでした
どうやら拡張機能のせいでした
>>265 は罠とかじゃなく仕様の範疇だと思うんだが
<table cellpadding="0" cellspacing="0"> <tbody><tr> <th>α</th><th>β</th><th>γ</th> </tr> <tr> <td>a</td><td>d</td><td>g</td> </tr> <tr> <td>b</td><td>e</td><td>h</td> </tr> <tr> <td>c</td><td>f</td><td>i</td> </tr> </table> このように、テーブルがテキストの形で与えられたとします。 このとき、左から3番目、上から2番目のセルの値 (h) を取得したいときはどのようにすればよいでしょうか? テーブルを表示させるのではなく、あくまで個々の値を取り出したいのです。 よろしくお願いいたします。
正規表現使って、</tr>でsplitして配列に入れて、配列から</tr>を除いて、 さらにその配列をまた正規表現を使って<th>or<td>もしくは</th>or</td>あたりでsplitして2次元配列にぶち込む。 その2次元配列に残ったタグを除いて、望みの配列の要素を取り出す。
>>289 もちろんそうですよ
ハマりやすいところなので、同じ問題に当たる人の一助になればと思って書いたまでです
293 :
Name_Not_Found :2013/08/06(火) 13:26:14.08 ID:z6FEyw0e
>>280 ひどいなあ
何しようとしてそういう考えに至っているのかはわかっとるよう
その考え方は以前横行して淘汰されたんだよ
$オブジェクトのメソッド叩きっぱなしにする奴
操作する対象がない場合は例外処理としてちゃんとやろう
って結論にたどり着いてるんだ
>>290 DOMParserでHTML化し、rowsプロパティ等で取り出す
>>291 やはり通常のテーブルのようにはいかないのですね。
ありがとうございました。がんばって操作メソッドを実装することにします。
>>294 DOMParserですか、初めて聞きました。
こちらも調べながら挑戦してみようと思います。
ありがとうございました。
お前が馬鹿なだけだろ
ドラッグでサイズ変更できる要素がありますが 一定サイズ以下に縮小すると、内側の要素がはみ出てきます はみ出ないようにするにはどうすればいいですか?
サイズ変更が終わった段階で調整はするので、 サイズ変更中は、はみ出た部分が見えなくなるだけでもいいのですが・・
出来ない
あきらめろ
サイズ変更中は、 外の要素にサイズを指定する時、同時に内側の要素のサイズも指定する という方法で出来ました ありがとうございました
できてないw
要素の削除ボタンをクリックすると、その要素が削除されます デスクトップ(body)をダブルクリックすると、要素が作成できます 削除ボタンで削除した直後にbodyをクリックすると、ダブルクリックになってしまいます クリックイベント内でpreventDefaultとstopPropagationはしていますが、 違った種類のイベントには効き目はないですよね 意図しないダブルクリックが発生しないようにするにはどうすればいいですか?
2回目のクリックの前に間をおく
ワロタ
(寒すぎて)ワロタ だろ
削除した直後はダブルクリック発生しても無視すればいいんじゃないの? フラグ立てて、タイマーでフラグ消すとか。
>>304 ボタンにクラス付けて、その上のクリックをnotで除外すればいい。
だからそれをおしえろやカス
まあ実際コンピュータはどんどん発達し続けてるからな。一方弊社はWindowsXPを使い続けた
>>308 なるほど
それでできそうです
ありがとうございました
>>309 削除ボタンにクラスは付けていますが
ダブルクリックのそれぞれのクリックがどこで発生したかなんて標準的な方法では分からないのでは?
要素に勝手なプロパティ名で値を入れたりするのはあまりよくなかったりしますか? jqueryを使って$("#test").attr("foo", "123")のようにセットして使っているのですが 自分の環境(windows chrome)では問題無く動作しますけど、他の環境だと動作しないことはあるんでしょうか? 動作に問題無くてもやるべきでない理由などあれば教えて欲しいです。よろしくお願いします。
>>313 たぶんほとんどのブラウザで動作はするんじゃね
HTML5だとdata-〜と名前をつけるように決まったようだけど
>>313 将来のHTMLでfooって属性に意味がついてブラウザがfoo属性に従って挙
動を変えるようになるリスクがある。
data-foo という名前にしておけばそういう問題が起きないことが保証される。
>>312 試した?
君の標準が何か知らないけれどjqueryのnotは標準だと思うぞ。
body上のダブルクリックはどうやって拾ってるの?
それと同じでボタンの上のダブルクリックは無視すれば良い。
317 :
Name_Not_Found :2013/08/07(水) 09:50:22.79 ID:kSkr2MR5
さっき気づいたのですが、youtubeの埋め込みを使ってるからだと思うのですが、
javascriptのコンソールエラーが出てしまいます。
Blocked a frame with origin "
http://www.youtube.com " from accessing a frame with origin…
動作は問題ないのですが、エラー表示が気になってしまいます。
このエラーはどういうことでしょうか?また、エラーを出なくする方法はありますか?
>>316 何か勘違いしてるようですね
ダブルクリックをボタン上で受け取っているわけではなく
閉じるボタンを押す→要素が消える→BODYを1クリックする→BODYでダブルクリックと検知される
という問題です
この発生をJavaScriptレベルで止めることは出来ないのでjqueryでも出来ませんよ
319 :
Name_Not_Found :2013/08/07(水) 13:12:41.89 ID:kSkr2MR5
javascriptで計算した結果をtableの中に表示しているのですが、 数字の幅に対してtdの幅を多めに取っていて、余裕がある状態でも 数字の桁が1つ増えて幅が少し延びると微妙に(1pxくらい)tdの幅が変わってしまいます。 これはしょうがないのでしょうか?
>318 勘違いしていない。 だから試したのかって?w
>ダブルクリックをボタン上で受け取っているわけではなく 逆、ダブルクリックをボタン上で受け取るなっていってるの。
>>319 なんのこっちゃ?
文字数からtd幅を計算して取っているのか?
でないなら固定したtd幅は変わらないはずだ。
JSで書き出さず、htmlに直書きして比べてみ。
直書き変わればcssの問題だ。
>>317 ググってみたけど似たようなもんじゃないかい?
www.public-t.info/log/web/87/
509 名前:Name_Not_Found :2013/08/07(水) 13:13:17.86 ID:kSkr2MR5 javascriptで計算した結果をtableの中に表示しているのですが、 数字の幅に対してtdの幅を多めに取っていて、余裕がある状態でも 数字の桁が1つ増えて幅が少し延びると微妙に(1pxくらい)tdの幅が変わってしまいます。 これはしょうがないのでしょうか?
undefinedは上書きされる可能性があるので typeofで調べろといいますが、 undefinedを上書きするような糞コードが混入する可能性なんて、 普通に作っている限り0に近いのでは? ===と!==でチェックしていいですよね?
>>326 ったく、言われたことも試さないあんたは
プログラム向いていないからやめなよ。
バグが出る確率が高い方をわざわざ選ぶ馬鹿には無理。
そんな質問すんなはずかしい。
ワロタ
クリックイベントとダブルクリックイベントは別のコンテキストで発生しているんですよ どうもそこを理解していないように見えますね
>>328 名乗る時は自分からって教えてもらわなかった?
みなの言ってる意味がわからなければ根本的に書き直せ。
「もともと受け取ってませんよ」なんて言えるコード書いてるってことは
多分無理だよ。
どうせondblclick="関数名"で、呼び出した関数が直接要素作成するんだろ?
一時間あってもを教えられそうに無いから自分の出来そうな方でやれよ。
参考コードもクソもあるか。
普通に書いてりゃnot('.bot')を挟むだけだ。
みなというか、おまえだけじゃね?
もちろん。だが自分で考えたコード貼るのが先な。
>>327 汚い実装のとばっちりで汚いコードを書くのが嫌なんですよ
>>334 こんなページあるのか!
ここならこんな感じで。
>>you
あとは勝手に応用してくれよ。
<div>
<button class='hoge'>Test</button>
</div>
$('button').click(function () {
$(this).remove();
});
$(document).not('.hoge').dblclick(function () {
$('body').append('<br/>dblclick');
});
>>328 おいどうした、あんだけ出来ないと決め込んで
威勢をはっていたのに簡単にできてしまって
自分のバカさ加減が嫌になったのか?
出来ないなら威勢はらずに素直に聞けよ。
講釈たれる前に試せよ。
だから
>>328 は煽って答えが出てくればラッキーとか思ってるんだから相手にするなよ
>>339 素直に聞いても出てくるのに気分悪い性格だよ。
341 :
334 :2013/08/07(水) 17:57:57.39 ID:???
いや、これだと、本来のbody部分のダブルクリックも抑制されてるけど。
自分のコードを晒せと言われても、晒すまでもない当たり前のコードですよ
$(document)
.on('dblclick', dblclick_func)
.on('click', click_func);
こんな感じにdocumentにハンドラを付けて、飛び先の関数で分岐処理しています。
>>334 そういうことです。すごくシンプルですね。
>>337 これで出来るんですか??
予想外のコードです
素のJSでは出来ないことが何故jQueryでできるのか不思議ですが、
内部的にダブルクリックハンドラを書き換えているのでしょうか
ともあれ組み込んでみます
ありがとうございました
ワラエルw
>>341-344 んもう・・・
終わったと思ったのに。
ダブルクリックできないのはクリック箇所<button>ないからだよ。
>>343 お前の言い方「あなた私よりレベル下ですわよ」と言わんばかりだな。
1から10まで教えて欲しいなら「できません、教えてください」だろ。
<div>
<p>ここがあればいいんでしょう?</p>
<button class='hoge'>Test</button>
</div>
$('button').click(function () {
$(this).remove();
});
$('div').not('.hoge').dblclick(function () {
$('body').append('<br/>dblclick');
});
347 :
341 :2013/08/07(水) 19:05:38.68 ID:???
>>346 それはボタンが消えたあとのクリック2回目が div外だから
うまくいっているように見えるが
<div>
<p>ここがあればいいんでしょう?</p>
<button class='hoge'>Test</button>
<p>ここがあればいいんでしょう?</p>
</div>
こんな感じで、ボタンを押したあと真下にテキストが来てしまうと
ダブルクリック発生してしまうよ。
http://fiddle.jshell.net/2jejR/3/ 2クリック目が基準となって発火するんで、
1クリック目で要素(ボタン)が消えてたらダメなんじゃね?
あと、質問者は変に煽るのヤメレ。予想外のコードですとか言わんでもいいことを…
そんなときは重なるpにもhogeつければよいんじゃい? 重なる要素はわかってるんだから。 thisのnextにつけてやってもいいしでも良いし。 ボタンが一回目で消えるのはいいはずだよ。 ダブルクリックでの要素作りが最初のクリックと被るから何とかしろってこと。
ダブルクリックをユーザーに請求するの?
「レベル」とかどうでもいいんですよ 事実だけが重要なんです 技術者にとっての神は事実だけなんです たから俺は自分が間違っている時は平気で認めますよ それで言うんですが、 事実として、やっぱ出来てないですよねこれ
次に出来る要素がどうたらとか、既に要求が変わってるし・・(呆れ
ダブルクリックイベントがどういう条件で発生するかを理解できてれば 簡単な解決法が存在するんだけどねw
「予想外のコードです」っていうのは本当にそう思ったからで、 煽りじゃないですよ 書き込みのタイミングで、できないことを知った後に書いたみたいになっちゃいましたが。
この程度のことさえも相談できる協業者や同僚や友達がいないんだね。、、
自分が恥をかいたからって人格攻撃はじめたぞw
ひとりぼっち
>>326 この件ですが、コード全体を囲んだクロージャ内で
var undefined;
としてundefinedを再定義するという方法で解決しました
ありがとうございました
そうなんですか? じゃあjqueryみたいに、引数の末尾にundefinedを加えるのがいいですかね ありがとうございました
すいません INPUT要素(#hoge)のVALUE属性をJavaScriptで指定する場合の例を見てみたいのですが、 ご教授願えませんか
361 :
Name_Not_Found :2013/08/07(水) 23:29:23.90 ID:nsqLsYnB
>>319 旧IEのことだったら、表の幅をCSSだけで完全に制御するのはむつかしい
なんとかするための方法はいくつもあるが、すれ違いなのでググってちょ
>>360 var obj = document.getElementById("hoge");
obj.value = "****";
>>362 勉強させて頂きました。
ありがとうございました。
たびたびすいません、 INPUT要素のONFOCUS属性をJavaScriptで置き換えたいのですが、どうしたらよろしいのでしょうか?
プロパティの初期値はnullとundefinedどっちにしておくのがいいですか?
>>304 この件ですが、一定時間指定要素の指定イベントをブロックする処理を追加して解決できました
ドラッグでの移動が終わった時にmouseupと同時にclickが発生してしまうという
類似の問題も同時に解決できたのでよかったです
ありがとうございました
369 :
368 :2013/08/08(木) 08:13:38.39 ID:???
>>350 >>367 だからな、出来る出来ないコードミスとかであって
アイデア的にnotでできるわけ。
技術者として一生恥じかけよ。
自分の頭が悪いことを最後まで理解しようとしない奴だったな
自分の範囲で出来ないことは誰にも出来ないんですよ。 自分が仕様なんですよ。
一定時間操作をブロックwww 小学生か
ダブルクリックの間隔広くしている人がいたらどうするんだろうね。
>>370 もはや何言ってるのかわからんわw
日本語までおかしくなってんぞ
>>374 「特定操作時に発生しやすい意図しないうっかりダブルクリックを防ぐもの」であって
通常のダブルクリックをハンドリングするための機構じゃないですよ
ダブルクリックの間隔を広くしている人がいたところで何の問題もありません
そもそもクリックした瞬間に要素がいきなり消えるっていうUIが糞すぎるわけよ
いちいち確認が出るUIがクソだと思ったのでそうしたのですよ もちろんうっかり削除に対する対応は用意します そろそろ生産性のない単なる言いがかりは無視でいきますね
わかってないガキだなあ いきなり消えるっていうのは、うっかり消したかどうかすら気がつかなかったりするわけよ 消えてレイアウトが変化する前に消える過程の表示を用意しておけば 意図せず消してしまったかどうかがユーザに伝わりやすいし それがダブルクリック誤爆の対策にも利用できるのに
>>379 jQuery使えばそういうのもわりと簡単に見栄え良くできるからなあ
>>378 自分が間違えてたら謝るとか言って謝らないしw
彼にとってはこの件ですが〜のレスが謝ってるつもりなんだよw
負けず嫌いにもほどがあるw
負けず嫌いなら負けないように努力すればいいのにね
ごめんなさいが言えない子供ってやつか
でももう話すり替ええや揚げ足取りしか残ってないだろうに。 初っ端で間違いの啖呵きってるし。
質:二回目のクリックがbody上で反応 回:notで除外 質:そんなことjavascriptごときにできない 回:はいできた 質:下の要素が詰まるからできない 回:じゃぁ次の要素も除けよ 以下:グダグダ 最初の質問に対して合っている回答なのに 質問者が負けず嫌いなもんだから なんとか間違えているようにもっていきたいんだろ? ちゃちゃっと質問者が「すみません、私のやりたいことは その方法では出来ません。」と大人な対応が出来ればよかった話だな。
そもそも .not() は複数選択された要素からマッチするものを取り除く構文であって、
内包する要素には影響与えないはずなんだけどな
でもなにか方法があるんだろうかなどと思いながら見てた。
たとえば
>>347 で示したコードからボタンを消す部分を取り除いた
http://fiddle.jshell.net/2jejR/4/ これで、ボタンをダブルクリックすると divにつけたハンドラが反応してしまう。
>>389 要素の階層しらべてチェインで対応できるよ。
>>304 の要求仕様
bodyのダブルクリック -> body上に新しい要素の作成
body上の要素のシングルクリック -> body上の要素の削除
発生する不具合
body上の要素のダブルクリック -> body上の要素の削除とbody上に新しい要素の作成
望ましい挙動
body上の要素のダブルクリック -> body上の要素の削除だけ
ほんとに.not()で対処できる?
392 :
Name_Not_Found :2013/08/08(木) 15:11:28.44 ID:EFRSNuLW
>>368 1バイト少なく書ける!とかだったりして
でも気にしないってのも手かも。(って根本から否定してみたりw) 他のアプリでもそうなるのあるし。 chromeでタブをひとつ作って、Xのところをダブルクリックしてみよう。 タブが消えるのと同時にタイトルバーがダブルクリックされるはずだ。
それな
壮大な自爆した奴の自演がひどいなw 馬鹿まるだし発言に馬鹿な賛同者が続いているが 世の中馬鹿がこんなにいるわけがない
.not()でしょ
jqueryでどうするのかという質問じゃないのにいきなりjqueryのnotなら出来るとか言いだしてた時点で こいつアカン奴やって分かってました
お前ら複数を装うなや カッコ悪い
event.keyCodeで取得したキーコードを元の文字に変換しようとして、String.fromCharCodeを使いました。 しかし英数字はいいのですが、記号がおかしな文字、たとえば[がU^(←Uの上に^)になります。 元の文字に変換するにはどうしたらいいでしょうか?
keyCodeプロパティは非標準だよ
jQueryMobileではない普通のjQueryってモバイルブラウザにも対応してるんですか?
>>401 対応してるよ
そもそもjQuery Mobileはモバイルブラウザ用jQueryって意味では無い
今までページ遷移するウェブアプリしか作ったことなかったので ajaxでのログインやセッション管理の勝手がいまいち掴めません 役に立つオライリー本ありませんか? ステートフルJavaScriptは既に持ってます
ステートフルJavaScriptはORMを使ったリモートサーバへのデータ格納など書いてありましたが 認証関係がすっぽり抜けてました・・
その辺はどちらかというとサーバ側の話になると思うけどね つまり従来はページのHTMLを返す前にcookieをチェックしていたのを ajaxに返答する前にcookieをチェックするようサーバ側で対応する なのでサーバ側に何を使ってるか分からないと よい本の名前は出て来ないのではないかな
>>400 399です、回答ありがとうございました
非標準だからできないという解釈でいいでしょうか?
>>405 ありがとうございます
やっぱり通信ごとにクッキーでの認証をするんですね
サーバはとりあえず慣れたPHPでやろうと思いますが、
ある程度形になったらnode.jsで置き換えようかと思っています
>>399 たぶんkeydownイベントなんだと思うけど、
keydownイベントでevent.keyCodeに入ってるのはString.fromCharCodeで文字に変換できるような値じゃない
A〜Zキーとかを押した場合は偶然値が重なってるから大文字のA〜Zに変換できちゃうだけ
非標準だけどこのへんはだいたいどのブラウザもこんな感じの実装なはず
古めのIEに対応させるよりかは全然マシ
411 :
Name_Not_Found :2013/08/09(金) 15:48:34.74 ID:qGFTI5Lk
>>409 2ヶ月前の俺が書いたのかと思ったwww
Androidの標準ブラウザはダメだねえ
同じchromiumから作ってるんだろうに、なんでchromeとあんなに差が出るのか
というか、なぜ標準とchromeを別に用意しているのか
412 :
Name_Not_Found :2013/08/09(金) 15:49:30.32 ID:qGFTI5Lk
>>410 これには同意
IE9以下よりははるかにはるかに良い
>>408 399です
やっと理解できました、回答ありがとうございました
414 :
Name_Not_Found :2013/08/09(金) 21:05:32.18 ID:wyWoFfhX
日付入力補助にdatepickerってあるけど、 ブログの横についてるカレンダーみたいなのはいわゆる何なのかな。 記事の日付データをもとにカレンダー風に表現してるんだろうけど つくるのめんどい
415 :
Name_Not_Found :2013/08/09(金) 22:01:31.50 ID:qGFTI5Lk
>>414 JSでやらんでも良い気はするが
jQuery以前のことを思い出しても
そんなに面倒ってわけでもないけどね
7で割って要素並べてくだけだし
417 :
Name_Not_Found :2013/08/10(土) 10:28:12.74 ID:udBYNBrU
function click_id(){ var that={}; that.turn=function(s){ var id_click=s.id_click,//クリックするid id_show=s.id_show;//表示させるid document.getElementById(id_click).onclick=function(){ var box=["q01", "q02", "q03", "q04", "q05","q06"]; //idがq1〜q06を非表示 for(var i=0;i<box.length;i+=1){ document.getElementById(box[i]).style.display = "none";} //id_showを表示 document.getElementById(id_show).style.display="block";} }; return that;} という関数を作って使っているのですが、 一度全部noneにしてその中で表示させるidをblockにするって、 なんとも頭の悪い方法だと思うのですが、他に思いつきません。 もっとスマートな方法ないでしょうか?
>>417 ループの中でid_showとbox[i]を比較して、消すか表示するか決めればいいんじゃないの?
420 :
Name_Not_Found :2013/08/10(土) 12:03:54.67 ID:Q+N71SYz
顧客がサインする必要がある文書作成をwebアプリで作っています。 従来の紙の文書ではカーボンで複数枚を重ねて一度にサインできる仕様ですが、 ブラウザ画面から入力した1つの文書から、例えば「注文書」「注文書(控)」「注文請書」などと 3枚プリントアウトした場合、自前でカーボン紙を挟むとか 顧客は3枚にサインしなければならないとか、不便な状況が発生します。 で、PDAなどの端末の画面からペン型のデバイスでサインする、 ときどき何かで利用するシステムを思い出したんですが あれをJSとタブレット、スマホなどの組み合わせで実現できますか? イメージしてる道筋としては、以下のようなことで可能かと考えてるんですが どうでしょうか? canvasを利用したページからタブレットでサインしてもらう =>サーバに送信して画像として保存 =>印刷時にこの画像をサイン欄に重ねてプリントアウト
JSでお絵かきソフトだって作れるんだから、 作ろうと思えば手書きサイン取り込みだってできるだろう
422 :
Name_Not_Found :2013/08/10(土) 12:27:58.51 ID:Q+N71SYz
>サイン欄に重ねてプリントアウト の部分を少し詳しく書くと、タブレットから入力内容(サイン)をサーバに送信すると サーバがPCの画面作成画面に画像を送信し、 JSで位置などをとってサイン欄に重ね合わせる、 その後でプリントアウトするというイメージです
ページに適当な画像を表示するのとなんか違うのか? なんでクライアント側のJSで重ねる必要があるのか?
js全然使う必要ないな canvasはtoDataURLで文字列にしてサーバーに送れ
それ以前に署名が印刷済みの契約書とか意味あんのか?w
その電子的に保存された署名イメージの印刷が本当に法的な意味を持つなら、 署名イメージの保存なんて絶対させたくないな
427 :
Name_Not_Found :2013/08/10(土) 13:39:31.74 ID:Q+N71SYz
>>421-426 おかげさんでなんとなく全体が見えてきました
>>423 位置をとると書いたのがおかしかったです。
入力フォームにあらかじめ書いてある「お名前」とかの文字と
サインの手書き文字(画像)をわけて保存するつもりでいて、
フォーム要素の背景画像なりにサイン画像をセットする(フィットさせる)感じで考えてました(印刷用に)
>>424 画像として送るんじゃなくて、canvas用のデータ送信の形式があるってことですね。
>>425-426 工事で来た業者とか、PDAやタブレットで署名を受け取って
その場で控をプリントアウトしてくれるじゃん。
そのときこっちが書いたサインは印字されてる。
保存しなきゃ後でサインを受け取ったことをデータ的に証明できないしな・・・
それとも署名程度はそれでよくても契約書には使われないだろうか?
そういえば自分も、契約書でそれは経験ないし。ううむ・・
これから確認してみるけど、ダメな気がしてきたw
428 :
Name_Not_Found :2013/08/10(土) 14:39:26.39 ID:Q+N71SYz
ごめん、意外とすぐわかった。
この先はJSと関係ないのでこれで最後にしますが、例えば↓
http://q.hatena.ne.jp/1275280341 簡単にまとめると、文書(紙)に押印があればあとは印刷(タイプ)でもいいというような。
客(特に個人の客)には申し込み用紙に記入してもらい、
それをタイプして契約書をつくる方式がシンプルかな。
端末からの自筆記入では
>>426 のように不安を感じるお客さんもいるだろうしね。
429 :
Name_Not_Found :2013/08/10(土) 14:47:47.37 ID:Q+N71SYz
ajaxでのデータのやりとりは、公開してなくてもRESTでAPI風にしておいた方がいいですか? まずRESTについての本を読んでおくべきでしょうか?
RESTful webサービスこうてみたけど 理解した上で訳しているというより理解しないまま直訳してる的な翻訳できつい。。
432 :
靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト教団 :2013/08/11(日) 03:41:26.72 ID:uEuuWS9j
★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 ↑マスコミや、カルトのネット工作員がやっていること TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、 カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。 リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
macのOSは、アイテムをドラッグしたままでフォルダの上にしばらく置いておくと フォルダが開きますが ああいうことを出来るjquery用プラグインありませんか?
スプリングフォルダというそうですが、どうもなさそうです 自分で実装することを考えたのですが ドラッグ中なので、掴んでいるオブジェクトが邪魔になって、 その下にあるオブジェクトを検知出来ないと思います オブジェクトの下のオブジェクトを検知する方法ありますか?
>>434 elementFromPointを使い、一瞬ドラッグ中の要素を非表示にすれば、マウスポインタの直下の要素が取れる。
436 :
Name_Not_Found :2013/08/12(月) 08:16:12.30 ID:NKr8h75m
divの高さを自動指定したいのですが、なかなか上手くいきません。
やりたいことはこんな感じです。↓
ヘッダ(W:100%、H:20px)
メインコンテンツ部分(W:800px、H:ページによって変動あり)
フッタ(W:100%、H:20px)
みたいなサイトがあったとします。
・現在のブラウザ高さ(px)をリアルタイムに取得します。
・bodyの高さ(px)を取得します。
↓
・body>現在のブラウザ高さの場合
→何もしません。
・body<現在のブラウザ高さの場合
→ブラウザの高さからヘッダとフッタの高さ(370px)を減算し、その値をメインコンテンツ部分のdivの高さに代入します。
--------------------------------------------
書いてみたコード
ttp://jsdo.it/rararararar/5yEi4 よろしくお願いします。
437 :
436 :2013/08/12(月) 08:18:37.92 ID:NKr8h75m
ヘッダ(W:100%、H:170px) メインコンテンツ部分(W:800px、H:ページによって変動あり) フッタ(W:100%、H:200px) みたいなサイトがあったとします。 でした。
お前いつまで同じことやってんの ヒマ過ぎだろ
>>435 ありがとうございます
うまくタイミングを取ればほとんど目立たなくできそうですね
>>436 Math.maxなんてメソッドあったんだ
複数のdom要素の座標の最大値や最低値を知りたい場合、
ループ中で判定するよりMath.maxやminで判定した方が速いですか?
441 :
Name_Not_Found :2013/08/12(月) 14:56:30.39 ID:Vjv5fhCX
(゚o゚;) えー ネイティブ関数の方が遅いとは思いもしませんでした・・ ありがとうございました
444 :
Name_Not_Found :2013/08/12(月) 15:12:36.52 ID:Vjv5fhCX
関数呼び出しは基本的にコストが高い。 forEach も毎回関数を呼び出すから for より10倍くらい遅いし。 ただ、ブラウザの最適化が様々に行われている結果、 例えば Array#push のほうが array[array.length] = newValue; より速い てなことが起こってたりするから、やっぱり自分で計測するか他人の計測結果を見るのが一番良い。
最適化が進んでも|0によるfloorが最速は変わらなそう
446 :
Name_Not_Found :2013/08/12(月) 17:28:49.72 ID:hthL9o/b
これまでエラーも表示されず問題なく動作していたのに、javascriptの一部分が動作しなくなり、 Failed to load resource このようなメッセージが出ます。 ぐぐっても理由が分かりません。ご存知の方いませんか?
ざっくりすぎワロタ
448 :
Name_Not_Found :2013/08/12(月) 17:37:42.71 ID:Vjv5fhCX
449 :
Name_Not_Found :2013/08/12(月) 18:56:28.11 ID:4UgCfo41
HTML5でローカルファイルをページにドラック&ドロップしてファイルの場所を取得したいのですが、 ファイル名やサイズは取得できるのに場所だけが取得できず困っています。 dropした際に発生するイベントハンドラ内で dataTransfer.files が返す値を console.log で調べたところ、以下のようになってました。 var file = event.dataTransfer.files[0]; console.log(file); --- console log --- File {webkitRelativePath: "", lastModifiedDate: Mon Aug 12 2013 18:53:06 GMT+0900 (東京 (標準時)), name: "テスト.txt", type: "text/plain", size: 3…} lastModifiedDate: Mon Aug 12 2013 18:53:06 GMT+0900 (東京 (標準時)) name: "テスト.txt" size: 3 type: "text/plain" webkitRelativePath: "" __proto__: File ------------------ この場合ファイルの保存場所(例えば"C:\Documents and Settings\user\デスクトップ")は どのようにして取得するのでしょうか?方法を教えてください。よろしくお願いしますm(_ _)m
450 :
Name_Not_Found :2013/08/12(月) 19:32:29.38 ID:Vjv5fhCX
ファイルのローカルパスなんて取得できたらセキュリティ上の問題が生じると思うのだが。
んだ。
452 :
449 :2013/08/12(月) 20:08:29.01 ID:4UgCfo41
自己解決できました スレ汚し失礼しました
嘘乙www
解決出来るわけ無いのに・・
455 :
Name_Not_Found :2013/08/12(月) 20:39:47.78 ID:4UgCfo41
戯言ワロタ
457 :
Name_Not_Found :2013/08/12(月) 21:13:51.53 ID:Vjv5fhCX
いつもの負けず嫌い君か?IDだすようになったんだw
はい、14歳ですがなにか?
460 :
Name_Not_Found :2013/08/12(月) 21:57:21.32 ID:4UgCfo41
chromeはwebkitdirectory属性や --allow-file-access-from-filesで起動すれば取得できるんですかね? ただ、もう解決したし試す気もないので回答は結構です。 これで失礼します。
は、汎用的な解なんて最初から求めてないんだからねっ///
JavaScriptでSVGを使って動的にアイコンを作るということは可能でしょうか?
>>462 canvas使えば一応可能。
たしか、まだ実行環境によってはできないかな。
質問
ある「括弧開く」に対応する「括弧閉じる」を見つける方法ありませんか?
for文で括弧の数を数える以外でお願いします。
while文で括弧の数を数える
465 :
Name_Not_Found :2013/08/13(火) 03:16:22.12 ID:xg7T9Lmf
/ ̄ ̄ ̄ ̄\. | [書き込む] 名前:[ ] E-mail[ ] | /;;:: ::;ヽ | ┌―――――――――――――――― | |;;:: ィ●ァ ィ●ァ::;;|. |.| ワロタww | |;;:: ::;;|. |.| | |;;:: c{ っ ::;;| | | | |;;:: ヽ_ ::;;;| \ / ヽ;;:: ー ::;;/  ̄ ̄ ̄ ̄ ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ タタタタ \;;:: ::;;/ _____________ タタタタ |;;:: ::;;| | | | |;;:: ::;;| | | | . / ̄ ̄ ̄  ̄ ̄ ̄\. | | | |;;:: ::;;|. | | | |;;:: ::;;|. | | | |;;:: | | ::;;|. | | | |,、,、,、,、 ,、,、,、,、l | | | 〈 l l l l l l l l 〉 |_|_____________| [二二二二二二二二二二二二] _|_|___|_
以前apply遅くね?と言っていた者ですが、WEB+DB PRESSのバックナンバーを読んでいたら Function.applyは通常の関数呼び出しに比べ、かなりのオーバヘッドが発生します。 可能ならば、Function.callや通常の関数呼び出しに書き換えることを検討してください。 applyをcallに差し替えるだけでも効果があります とありました
ポストインクリメント演算子(i++)は遅いため、プレインクリメント演算子(++i)にする と上記の記事にありましたが、速度差が出る理由は何でしょうか?
どうでもいいレベルの誤差
471 :
Name_Not_Found :2013/08/13(火) 09:38:49.23 ID:JRF1pARh
>>463 replaceの第二引数でごにょごにょするのはどうだろう
>>463 canvas で SVG は作れないぞ?
作った SVG をcanvasに利用することはできるが
>>462 SVG の動的作成は DOM で普通にできる
こんな感じ
var NS = '
http://www.w3.org/2000/svg ';
var svg = document.createElementNS(NS, 'svg');
svg.style.width = svg.style.height = "100px";
var circle = document.createElementNS(NS, "circle");
circle.cx.baseVal.value = circle.cy.baseVal.value = 50;
circle.r.baseVal.value = 30;
circle.style.fill = 'red';
document.body.appendChild(svg);
その SVG をアイコンみたいに使い回すには
ソースを data:URL 化して HTML の img.srcに与えるか(なんか回りくどい)、別の SVG からuse 要素で参照する方法がある
http://stackoverflow.com/questions/11753485/set-img-src-to-dynamic-svg-element 他の方法があれば知りたい
473 :
Name_Not_Found :2013/08/13(火) 13:14:33.24 ID:maXWMQ1Y
>>472 svg.appendChild(svg);
が抜けてたね
んで、複製はsvg.cloneNode(true)が楽かと
474 :
Name_Not_Found :2013/08/13(火) 13:14:58.78 ID:maXWMQ1Y
まちがえた svg.appendChild(circle); すまんこ
関数内だけで使う無名関数は、呼ぶたびに作成・廃棄を繰り返すとガベコレの原因になるので 関数のプロパティとしてキャッシュしておくべきでしょうか?
はい
いいえ
はい。
必要
ありがとうございました
ジェイクエリーって内部でキャッシュしてますか? 既にjQueryオブジェクトが存在したらそれを返すというような処理をしてますか?
もちろん
まじですか 自前でなるべくキャッシュして使ってたんですが そういう工夫は必要なかったんですか・・
はい
え?冗談でしょ? 毎回jQueryオブジェクト変数に格納してたけど
キャッシュしてないってことですか?
ソース公開されてるんだから自分で読めば良いじゃん
ジェイクエリーの各所でキャッシュは使っているようですが jQuery.fn.initでは使ってないようですね
jQuery 高速化でググるとまずjQueryオブジェクトを変数に入れろが出てくるから盲信してたわ
内部を見ると色々してるから自前でキャッシュするのはあきらかに有効です ありがとうございました
>>471 なるほど、内側からつぶしていくと、
ありがとうございます。
strict modeでconstを使うと例外が出ました strict modeで定数を使うにはどうしたらいいですか?
定数に代入しようとしたんじゃないの?
const a = 123; こういう書き方です その後に代入はしてません
環境や再現コードを出してくれよ 一応確認するが、Node.jsの話ではないよね?
"use strict"; const a = "123"; これで再現すると思いますが・・
strict modeで使えるconstはES6からじゃないのかね? ChromeのV8はなんかモード変えないエラーになるんじゃなかったかな FirefoxはエラーにならんけどES6の仕様で動いてるのかどうかはしらん IEはどうなってるんだ
例外が出るのは仕様なので、 定数を使うにはどうしたらいいのだろう?という疑問です
ES5の範囲内でやるなら、getter と setter を駆使してやるくらいしか思いつかんな
代替方法もないのに何故定数をなくしたのか意味が分かりませんが プロパティ名を大文字アンダースコア区切りという昔ながらの方法でやります ありがとうございました
そりゃconstの実装がES5では決まらなかったからだよ 標準で実装されてないものをstrictモードが弾くのはあたりまえ IEはそもそも未実装だしV8やFirefoxのconstの実装には問題がある
関数スコープでのvarと同じような感じに動作するconstを標準に加えてしまうと未来に禍根を残すということかな なのでブロックスコープ的なものをサポートするES6以降に見送ったんじゃないかと
PHPでは、 list($a,$b,$c) = func(); のような形で、配列の返り値を一度に変数に代入できますが JavaScriptでそれをする方法ありませんか?
ES6だからまだ、特にstrict modeでは使えないんですね ありがとうございました
Aptana 3でJavaScriptライブラリ 使えるようにするには、どうすれば出来ますか?
偶然です。
そうですか?おかしいなぁ・・ 異次元に迷い込んでいたのかもしれませんね ありがとうございました
1秒mousemoveしなかったら関数を呼び出す、という処理だったのですが それが偶然定期的な呼び出し以下に収まっていたので動作していたようです 本当にmouseがmoveしてるかは座標まで調べないといけないんですね
マウスの動きを察知 嫌すぎて引くわ
513 :
Name_Not_Found :2013/08/14(水) 15:43:48.28 ID:Vvl5MBMW
乏しい経験と想像力で人を貶すことの、何と愚かで浅ましいことか って、帰って来てる爺ちゃんが言ってるけど 意味はわかりません><
まさかw スプリングフォルダのようなものですよ マウスの動きを察知と言うより、マウスの静止を察知です
>>513 マジレスしていい?
なにを言わんとしてるの?
517 :
Name_Not_Found :2013/08/14(水) 17:10:19.94 ID:LxThuQiq
墓参りに行こうぜってことじゃね?
馬鹿は他人をdisる前に 「そう思うのはもしかして自分が馬鹿だからではないか?」と疑問に思えということでしょ 分かりやすいじゃん
>>515 スプリングフォルダのようなものを実装するなら、
マウスの動きが止まっているかどうかを判定するのではなくて
マウスの動きがある閾値内におさまってるかどうかを判定すべきでないの?
>>508 のような問題が出る実装にはそもそも問題があるような気がする
マウスをどう使うかなんて知られたくないなー
hoverでよくねえ?
523 :
Name_Not_Found :2013/08/14(水) 17:48:58.23 ID:LxThuQiq
彼がやりたいのは 任意の要素とドラッグしている要素の当たり判定と ユーザのスプリングフォルダしたいとという意思の汲み取りだから hoverだと役に立たないんじゃね?
>>519 おっしゃるとおりで、マウスを持っている手がぶれることはあるので
幅を持たせることは予定していますが
mouse移動判定ルーチンで対応は可能ですよ。
508の問題はブラウザごとの仕様の違いによるものなので
アルゴリズムの問題ではないと考えています
mouseoverでマウスの座標位置を取得→ポインタ直下にフォルダの要素があるかどうかを調べる →フォルダがある領域にポインタが乗っている状態が一定時間(例えば2秒)続いたらフォルダをスプリングする でいいじゃん マウスが静止してるかどうかは初めから考慮する必要のない事でしょ
んだ。
>>524 そもそも幅を持たせるつくりになっていれば
ブラウザの仕様に関係無く動くという意味がわからないかな?
違いますね。
>>525 ごめん、mousemoveだった。
どっちにしろ、1秒ごとに勝手に発火しようとしなかろうと関係ない話だと思うのだけれど。
>>527 なるほど
それはそうですね
定期的なmousemove呼び出しの存在を知らなかったので経過的に発生したバグと言えるかもしれません
でも結果的に知れたので良かったと思っていますよ
>>525 それが普通のやり方だと思いますが
軽さを求めた結果のアルゴリズムです
動作のたびに当たり判定をするのではなく、
「静止」が発生した段階で当たり判定をするようにしたのです
hoverでやったほうがどう考えても軽いと思うのだが
んだ。
hoverってCSSのhoverですか? それでやるの意味がよく分かりませんが、 アイテムをドラッグし、他のアイテムの上に載せ、しばらくそのままにしておくとイベント始動 という要件に使えるのでしょうか? ドラッグ中なので、マウス直下には掴んでいるDOM要素があり、 その下のDOM要素でマウスイベントを受けるのが難しいという問題がありますが
マウスイベントはdocumentで受けろ イベントが終了したらremoveEventListenerでよし
デレゲーションは高速化のためにしてますが それをしたとて掴んでいるDOMより下のDOMのイベントを受けるのが難しいのには変わりがないですよ hoverって何のことかと思ったらjqueryだったんですね これは上記をどう解決するかという問題があるし、また軽くもないと思いますよ というか今の方法がそもそも全然重くないし快適に動いていますし
firefoxのwebコンソールを見ると 不明なプロパティ box-sizing が使用されています というCSSエラーが出ており、原因を探っていくと、jqueryのようでした jqueryを読みこむだけのファイルを作成して表示すると、やはり同様のエラーが出ました ですが、エラーメッセージでググってもヒット数が妙に少ないです これは標準的な動作なのでしょうか?
>>537 Firefox の box-sizing はまだプリフィックス付きでしかサポートされていない
非対応プロパティは他にもあるだろうに、なんでこれだけ出るんだろうと違和感を持ったのですが アドオン全部削除しても出るのでたぶん正常動作ですね ありがとうございました
540 :
Name_Not_Found :2013/08/15(木) 00:03:53.16 ID:kWbx04rS
>>536 要素と要素の当たり判定は
結構古くからあるんでググると色々あるよ
んで、スプリングフォルダの判定は
静止よりも重なっている時間かもしれん気がする
滞在時間で判定だと要素の上をゆっくり移動している時にいきなり反応する可能性もあるのでは 滅多にしない動作ではあるので、 多少意識を集中しないと反応しないくらいがちょうどいいと思っています
動的にCSSに不正な値を代入した時、firefoxではコンソールにCSSエラーが出ますが、JSの行番号が出ません chromeではコンソールにエラーも出ません CSSエラーでJSの該当箇所も確認出来る方法はないでしょうか?
543 :
Name_Not_Found :2013/08/15(木) 04:02:27.60 ID:jytJy+Zl
>>542 1代入前の値を取得しておく
2代入する値と同じなら return
3値を代入
4代入後の値を取得
1と4を比較して同じだったらエラーを投げる
みたいな感じでどう?
ないのですかー
firefoxはエラーを出すだけでもましですが・・。
>>545 代入されてなかったら不正だったと判断するということですね
今のコードはCSSへのアクセスをラップしてはないので、既存のコードに組み込むのが大変そうです
var obj = document.getElementById("hoge"); obj.value = "****"; これを一番最後に読み込ませたいのですが、 どうしたらいいんでしょうか?
最後ってどういう意味?
要素が読み込まれる前にスクリプトが実行されないようにしたい そのように考えております、、、
DOMContentLoadedってこと?
わかんねえならjQuery使ってろよ
甘えたこと言うようで申し訳ないのですが load,onload,DOMContentLoaded,等々 functionとの組み合わせ方がいまいち分かりませんで、 動くように作成できなかった次第です。
jQueryですか 勉強してきます
onloadで実行すればいいだけじゃないのか
すみません、onloadでうまくいきました PCでは特に問題なかったことですが スマホでは動作せず、といったところで詰まってしまいまして どうもありがとうございました
要素のstyle属性が適用される以前のCSSの値を取得する方法ありますか? getComputedStyleは、style属性込みの結果なので求めるものと違います
JQueryとJLeageって、何が違うんですか?
表記に使うアルファベット
JavaScriptの「巻き上げ」って絶対実行されない行の変数でも起きるのですか? if ( 0 ){ var hoge = "hoge"; } とか
>>556 style属性を一度取り除いてから取得ではだめなのか?
それともカスケード処理のある特定の段階の途中結果を知りたいということ?
>>561 そのくらい試せよw
起きてもらわないと一貫性なくて困るから起きると思うが
まきあげますか まきあげませんか
巻き上げの確認ってどうやれば出来るんですか? 巻き上げられてなくても巻き上げられててもundefinedだから分からないのでは
565 :
Name_Not_Found :2013/08/16(金) 18:24:47.10 ID:v3NMbuD2
スコープの外の、同じ名前の変数を参照すればいいんじゃね? var a = 'hoge'; (function(){ console.log(a); var a = 'fuga'; // ←これを書いたり書かなかったり })();
なるほど ありがとうございました
var a = "hoge"; (function(){ alert(a); if ( 0 ){ var a = "a"; } })(); で確認したところ巻き上げが起こっていました
巻き上げって誰がどういう意図で考え出した名称なんだろう 初めて聞いたら何のことかさっぱり解らんぞ
そのままじゃん hoistingの直訳
カツアゲの方が分かりやすい
からあげウマウマ
キャン玉
JSHintのウェブ版反応しなくなった?
npm版インストールした こっちの方が使い勝手いいな
javascriptとphpを勉強して画面遷移しない画像うpローダー 作ったのですが1円の収入にもなりませんでした。 Javascriptって何作ったら年金の支払いの足しになりますか? youtubeにJavascriptで作った自作プログラムの紹介とかのほうが 稼げますか?
>>560 これは即座に結果が確認できてかなりいいのですが
保存をすると必ず公開になってしまうのでしょうか?
非公開で保存をしたいのですが
>>575 広告貼れよw
アクセスがないならそれ以前の問題な
有料で配布しようとしたんじゃないか?
フィドルサラダ、Lint的な機能も非常にいいです 文字が小さすぎる、保存の仕方が分からないなど難もありますが この種のアプリで一番いいのって何ですか?
>>575 そんな程度のアプリ今更作ったって金になるわけないじゃん
それで金になったらマーケティングのコンサルできるわ
サラダたべたひ
永久ループを作るのに for (;;) とすると、 while(1) より速いですか?
583 :
Name_Not_Found :2013/08/18(日) 22:21:52.17 ID:37vgmFiT
これは素直にwhile使った方が良さそうですね ありがとうございました
ハンドラを外す時のために参照を保持しておくのが面倒くさいです キー名で外せたらいいと思うのですが、そういうjqueryプラグイン的なものないですか? 付ける時 $div.on('mousemove',func,'hoge'); 外す時 $div.off('mousemove','hoge'); こんなイメージです
あるjqueryオブジェクトを、 hideされたら、自分に付けられたハンドラを自分で削除するようにしたいと思います どうやれば出来ますか?
hideにハンドラ付けるのは無理そうだったので ハンドラを削除したりhideしたりするカスタムイベントハンドラを付けて hideの代わりにそれをtriggerすることにしました
588 :
Name_Not_Found :2013/08/19(月) 17:30:53.41 ID:DQFYu4xh
>>271 の解決策分かる方おられませんでしょうか?
590 :
589 :2013/08/20(火) 10:33:46.56 ID:???
>>588 2つ目のURLのやつをchromeでみると、最初の1回だけ左上に出るけどあとは意図通りの場所に出てる。
なので、おまいさんの使ってるブラウザはgetMousePosition() 内のマウスポインタの位置の取得方法では
うまく取れないんだと思う。
まずは getMousePosition() の最後辺りに console.log(x); console.log(y) などとして
そこを通っているのに 0のままになっているのを確かめ、
<ブラウザ名> マウスポインタ 位置 みたいなキーワードで取得方法を調べて
書き換えよう。
>>589 非同期というかバッファリングされてるって感じかな。
参照値を最後の最後で評価するような。
console.log(JSON.stringify(arr));
とでもしておけばいいんじゃね?
593 :
589 :2013/08/20(火) 11:30:29.22 ID:???
>>592 バッファリング…こんなの初めて知りました…勉強になります。
JSON.stringifyはJson化する関数ですよね?なぜ、これを使うと大丈夫なのでしょうか?
console.logをストレートに出さずに1枚何かの関数とかで処理をさせる事でバッファリングを回避しているのでしょうか?
>>593 var a = [1, 2];
var b = a;
a.push(3);
console.log(b); // [1, 2, 3]
var a = [1, 2];
var b = JSON.stringify(a);
a.push(3);
console.log(b); // "[1,2]"
こんな感じ。考えて見れば当たり前だと思うはずだよ。
595 :
Name_Not_Found :2013/08/20(火) 17:51:12.71 ID:qXt8XCOb
>>591 レスありがとうございます。
自分もChromeを使っており、リンク2枚目のURLサンプルは意図通りの場所に出てるのです。
指定の場所にconsole.log(x); console.log(y)を置いて見てみたんですが、少なくともその時点まではマウスポインタの位置が取れてるみたいです。
596 :
589 :2013/08/20(火) 21:17:37.53 ID:???
>>594 うう。全然わかりません。
何か検索のヒントだけでも下さい。
もはや、上のコードすら何故そうなるのか分からないです…。
C++のポインタみたいな感じなんですかね…
597 :
Name_Not_Found :2013/08/20(火) 22:54:33.14 ID:KshPX7oe
>>596 「はい、今日のおやつはプリンよー」
「わーい、いただきまーす!」
これが値渡し
「おやつは冷蔵庫の中よー」
「あとで食べるー」
「くっくっくっ、兄上もヌルいことを」ヒョイパク
これが参照渡し
>>595 リンク2枚目のURLがおまえさんの書いたコードで、それが動かないって言ってんじゃないのかい。
参考にしたっていっても、そのままコピーしたわけじゃないだろうし、サンプルの方だけを見せられてもわからんよ。
とにかく popUp() のx,yを参照している直前とかに console.log()を埋め込んだりして調べよう。
ひとつ考えられるのはスコープだけど…
関数内で x,y を定義してたりしないよね。
(そもそもこのサンプルのグローバル変数を使う方法は勧められんけど)
>>595 サンプルが動いて、それを参考にした自分のコードが意図したとおりに動かないのなら、
その変更した部分が間違ってるに決まってるじゃん
それなのにサンプルコードの方だけ出されてもこっちには間違ってる部分なんて分かるわけないよ
バグを特定して欲しいならソースコード出しなよ
601 :
Name_Not_Found :2013/08/21(水) 00:47:54.74 ID:TBe5TZjS
>>599 Javascriptの部分はサンプルと全く同じです。
function popUp(n) {
console.log(x); console.log(y);
window.document.onmousemove = getMousePosition; // マウスの座標をx, yに取得
console.log(x); console.log(y);
document.getElementById("ID").style.left = x + 10; // ポップアップ要素のx座標を指定
document.getElementById("ID").style.top = y + 10; // ポップアップ要素のy座標を指定
console.log(document.getElementById("ID").style.left);
console.log(document.getElementById("ID").style.top);
みたいに埋め込んでみて、Chromeのデベロッパーツールの>>にオンマウスが来た時の、Console出力を見てみたんですが、
console.log(document.getElementById("ID").style.left);
console.log(document.getElementById("ID").style.top);
のところは空白になってました(その前のconsole.log(x); console.log(y);はちゃんとマウス位置が出力されていたようです)。
関数内のx,y宣言はないです。元サンプル通りです。
>>601 じゃあHTML構造がおかしいのでは?
ディベロッパーツール使えるなら、#IDの要素にきちんとx, y座標が適用されてるかとか
調べられるでしょ
>>601 > ID.style.left = x + 10; // ポップアップ要素のx座標を指定
> document.getElementById("ID").style.left = x + 10; // ポップアップ要素のx座標を指定
改変してるやーん。まあそれが原因かはわからんけど。
604 :
Name_Not_Found :2013/08/21(水) 01:29:34.45 ID:TBe5TZjS
>>603 いや、Javascriptの部分はそのままコピペしたので改変があったなら、
元ソースが変わった可能性です。
>>604 そうなんか。
まあとりあえず、 x + 10 を (x + 10) + 'px' にしてみて。 yも同様。
606 :
Name_Not_Found :2013/08/21(水) 01:45:37.88 ID:TBe5TZjS
>>602 デベロッパーツールは特定の要素がどういうCSSで適用されてるとか、
Javascriptの変数を追うのに使ってるくらいで、
>#IDの要素にきちんとx, y座標が適用されてるかとか
というのはデベロッパーツールでどう追えばいいかわからないです。。
607 :
Name_Not_Found :2013/08/21(水) 01:59:21.66 ID:TBe5TZjS
うむ。さっぱり状況がわからん。w コンソールにでてる x , y の値とかを "10px" などのように直接指定してみるとかして、いろいろ試してみるがいい。 それとサンプルでうまくいっているのは DOCTYPEを指定して*いない*からだな。(ちょっと調べた) <!DOCTYPE html> を一行目に入れるとうまく行かなくなる。 このへんの解説はもっと詳しい人に譲るわ。
609 :
Name_Not_Found :2013/08/21(水) 03:35:30.62 ID:TBe5TZjS
>>608 もしもポップアップの現在の詳しい状況をうpしたほうが良ければ、それぞれのレスにオンマウスした状態で画像を待たうpしてもいいです。
チョットまた自分でも調べてみます。
丁寧にご回答ありがとうございます。
610 :
589 :2013/08/21(水) 05:50:12.56 ID:???
>>597 ああ!
これが参照渡しなのですね!聞いた事あったけど意識した事がなかったので、改めて勉強します!
>>598 ありがとうございました!
611 :
Name_Not_Found :2013/08/21(水) 07:51:28.43 ID:TBe5TZjS
>>608 すみません。。今みたらy座標のpx指定がpyになってて、それを直したらうまくいきました!
アホだな
614 :
Name_Not_Found :2013/08/21(水) 12:25:49.33 ID:TBe5TZjS
>>613 こういうサイトが有るんですね!ブックマークしておきました。
また何かあればどうぞよろしくお願いしますm(__)m
615 :
Name_Not_Found :2013/08/21(水) 12:35:50.03 ID:jGZEQhXM
あんなだらだら書いてあるテンプレなんてわざわざ見るわけないだろwww
iOSなどにある、 設定項目が縦に並んでいて、右側に項目の詳細が表示される 2ペインの設定ができるような jqueryのプラグインを探しているのですが 何で検索すればいいですか?
テンプレに書いてあるから読めと指摘すれば済むためにあるので。 虫のいどころが悪かったらテンプレも読めないアホとか罵倒してもよい(w
>>617 「iOSなどにある、
設定項目が縦に並んでいて、右側に項目の詳細が表示される
2ペインの設定ができるような
jqueryのプラグイン」
それだとそれらしいものは出ませんが?
「縦並びタブ jquery」で出ました
622 :
614 :2013/08/22(木) 01:30:21.10 ID:arpKwv3l
度々申し訳ありません。
ポップアップは住民の方々のお陰様で出るようになったのですが、
ポップアップを出すために、被参照レスには、頭に<div id="resレス番号">とレス末尾に</div>を入れないといけず、
現在はまとめサイトツールなどでhtml発行後、
正規表現置換ツールでレス頭と末尾のパターンを検索して、一括して置換後、その置換後のhtmlを使っているのですが、
>>271 のサンプルですと、replace_anchorとrepでhtml生成の時に自動的にオンマウスの処理をタグに書き換えているので、
そのままのやり方で自動的にhtmlを置換できると思って、見よう見まねでやってみたんですがエラーになりました。。
http://jsfiddle.net/XDD6J/2/ ちなみにサンプルを入れてみたのですが、何故かここだとポップアップが確認できなくて(ちょっとまだあんまり使い方判ってなくてすみません)。。
レス番327と347には比較のため手作業で<div id="resレス番号">〜</div>が入れてあります。
Javascript12行目のやつがレス頭の検索正規表現で、13行目がマッチしたパターンを置換する正規表現です
(レス頭を置換した後いつもはレス末尾の</div><br />を</div></div><br />で置換してますが、とりあえずレス頭だけ置換できれば、
タグを閉じてないからポップアップの内容はめちゃくちゃになりますが、ポップアップ自体は出てくれるはずなので今は載せていません)。
一応コメントで載せておきます。
15-27、57行目が今回自動置換目指してやってみたけどダメだった部分です。今はコメントアウトしてます。
また時間あるときでいいんでお優しい方コメントいただけるとありがたいです。m(__)m
jqueryで、一本のメソッドチェーンで、 width = width + 10 みたいなことさせることできますか? 一度変数に代入すれば出来ますが、一本のメソッドチェーンでやりたいのです
いや変数を使ってもいいです メソッドチェーンを切りたくないということです
var test = function (){ alert(this.hoge); }; test.hoge = 'a'; test(); こうした時、undefinedになるのは何故ですか? 関数に外からプロパティを代入するにはどうしたらいいのでしょうか?
jqueryでセレクタの結果をキャッシュするプラグインを書いてみたのですが セレクタをオブジェクトのキーに使うため、文字列にしないといけません しかしdocumentだけは、'document'と書いても$(document)が返ってこないようです 文字列をセレクタにして$documentを取得するにはどうしたらいいでしょうか
>>626 JQueryのことは分からんけど、文字列が'document'の時だけif文でチェックして
$(document)を返すんじゃいけないのかな。
>>625 関数の中のthisはその関数オブジェクトを参照するわけじゃないから。
プロパティの代入はできてると思うよ。callee.hoge で参照すれば取れるんでは。
>>626 jQueryの .data() のやり方を参考にすればどうか。
DOM要素の場合、DOM要素['jQueryバージョン番号乱数'] = 順序番号 のようにDOM要素に
数字を埋め込んで、その數字をキーにしてキャッシュしている。
でも結果のキャッシュってことは
<div></div>
var a = $('div');
$('div').remove();
console.log(a.length); // 1
console.log($('div').length); // 0
ってことはありえるけどいいんか?
630 :
626 :2013/08/22(木) 19:18:42.35 ID:???
セレクタがwindowsオブジェクトやdocumentオブジェクトの時だけ 内部でキーを文字列に振り替えるようにしました あとキャッシュするのはメソッドの実行結果ではなく、クエリーの結果でした ありがとうございました
>>627 var test = function test(){
alert(test.hoge);
};
で出来ました
thisについて根本的に間違ってました
ありがとうございました
>>631 そのtest.hogeはどっちのtestが使われると思うの
>>628 eachで出来ました
ありがとうございました
>>632 var test=
はこの場合いらなかったですね
モーダルウインドウって、htmlの中に非表示状態で書いておいた方がいいですか? それとも動的に生成した方がいいですか?
好きにしろよw
検索ヒットさせたいかどうか。
なるほど ありがとうございました
タブって、li要素にaタグを入れるケースが多いようですが aタグ必要あるんですか? li要素にid持たせればどこがクリックされたか分かるのでいらないと思うのですが・・
少しでもjavascriptのソースをパクられにくくする方法はありますか? 難読化する方法もあればお願いします
>>640 心配するな。
自分が思っているほど価値はない。
パクるのと作るの考えたら作る方が早いし。
minifyすればいいじゃん
なんでそう思ったのですか?
ってかなんでリスト内のaタグ限定なんだよw 後半の話だけでaタグの存在無視じゃない。
>>639 あなたのいう通り。
作者にいってやれよ、今どきJavaScriptオフの場合なんて想定して作んねーよってw
オフを想定ではない 読み込みエラーを想定するのがプロ
>>585 の件ですが、
ハンドラを付ける時にラベルを指定し、外す時にはラベル名だけで外せるプラグインを書いて解決しました
簡単な仕組みですが、かなり便利になりました〜
タイミングが分からないのですが、lessファイルを更新しても更新が反映せず ずっとキャッシュを読み込むようなる時がありますが 原因は何でしょうか? よく分からないままいじっていると直るのですが、それもなんで直ったのか分からない感じです
>>649 の件ですが、どうもlessが読みこむ時にキャッシュを読んでいるようなので
<link rel="stylesheet/less" href="main.less?<?php echo rand();?>" type="text/css" />
のようにPHPで乱数を付けて毎回読ませるようにし、今のところうまくいっているようです
再現の条件が分からないのでまだ分かりませんが・・
ちなみに <script type="text/javascript">var less=less||{};less.env='development';</script> をlessの前に入れろというネットで読みましたが、 それをしても無理でした
PHP使わなくてもJSでlinkタグ書き換えたらよくね?と思ってやってみたらできました〜 <script type="text/javascript"> $('link[rel="stylesheet/less"]').each( function (){ this.href = this.href + '?' + Math.random(); } ); </script>
http://jsfiddle.net/zcpZs/ <div id="hoge" style="background-color:hsl(120, 50%, 50%);" >
</div>
とHSLで色を指定しても、JSで色を取得すると、RGBに変換されています
chrome,firefox,ieでそうでしたが、これはそう決められた動作なのでしょうか?
はい
色のデフォルト表現はhexの方が伝統的な気がしますが、rgbなんですね ありがとうございました
fiddle系サービスって動的にコード動かせますが 犯罪に使われたりしないんですか?
どんな犯罪があるんですか
知らない人にJS経由で犯罪的な書き込みをさせるとか
forEachって積極的に使っていくべき?
>>659 forEachは毎回関数呼び出しがある分forより遅い(約10倍、詳細はjsperf参照)けど、
for自体が速いので、普通の処理をするだけならそんなに差は生まれない。
だから、よっぽど速度が重要な場面以外ではforEachを使っても問題ないし、
配列を回す等カウンタ変数が特に重要な意味を持たない時は積極的に使っていいと思う。
以下の議論も参考にどうぞ。
JavaScriptで配列をループで処理するベストな書き方は? - QA@IT
http://qa.atmarkit.co.jp/q/2803
try { a = get(); if (a == null) throw ""; } こういう時ってnullを返すよりget()内でthrowするべきですか?
663 :
Name_Not_Found :2013/08/27(火) 09:23:36.24 ID:xtYYi26x
XHRでhttpからhttpsへ値を送りたいのですが、 クロスドメインの「Access-Control-Allow-Origin: *」のように なんらかの手を加える事によって可能になる方法はありませんか?
664 :
Name_Not_Found :2013/08/27(火) 09:25:55.24 ID:xtYYi26x
書き忘れましたが、 同じサーバー上の同じドメインです。
Socket.ioとは具体的にどのようなものですか? 通信する部分をまとめて少ないコードで書けるようなライブラリみたいなものですか? 教えてください
イオナズンの弱いやつ
jsfiddleって自分からURLを公開しなければ 保存したものを他の人に知られませんか?
669 :
589 :2013/08/27(火) 20:14:21.49 ID:???
>>665 Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript.
>>668 URL見れば分かるでしょ。見ることも編集する事も可能。
>>670 荒らしとは何だ
まじめに質問してるだけだ
失礼なことを抜かすな
>>669 URLを知った人が閲覧・編集可能なのは分かりますが
ランダムに生成されるらしいURLを他人が検索などで知ることができるのだろうか?ということです
>>671 何だその上目線な態度は?
誰に向かって口きいてんだ?
小学校からやり直して来い
うるせーよジジイ
>>674 お前には聞いてねーから。
黙ってじっとしとけ
くされ外道が
678 :
Name_Not_Found :2013/08/27(火) 22:33:29.71 ID:QA7vGi8G
インクリメンタルサーチで聞きたいのですが
該当無しを表示させたいのですがうまくいきません
該当無しのtd要素を隠しておいて表示させようとしてるのですが
重複したり元に戻したら再び表示されていたりして困っています
このソースコードで該当無しを表示させる方法を教えてください
http://codepad.org/EkvgMwsG
バグ→jsfiddleに部分的に抜き出す→問題を局所化してデバッグ この方法の生産性が高いですがもっといい方法ありますか?
抜き出すまでもなく最初から細かくモジュール化して作る。 jsfiddleにアップするまでもなく、 コンソールから該当コードをユニットテスト あぁ、君には無理な世界だよw
JavaScript版ZenCodingみたいのないですか?
>>680 まぁ、普通のやり方ですよねw
デバッグというよりプロトタイピングといった方がいいかもしれません
CSSがなんでこういう動作になるのかが分からないといった場合の検証にjsfiddleは素晴らしいです
CoffeeScriptでも使えば?
JavaScript開発でおススメのIDEを教えてください
jsfiddle
> CSSがなんでこういう動作になるのかが分からないといった場合の検証にjsfiddleは素晴らしいです 普通にブラウザでやればいいと思うが?
だから何だカス すぐに確認できたり簡単にjquery使えたりする方がいいだろ
だから普通にブラウザでやればいいでしょう? jQuery使うのが何か難しいんですか?
少しでも生産性の上がる方法を探求するのは当然のことだろ 向上心のない奴は去れよ
jsfiddleのどこが生産性上がるの? ファイル編集しても同じだし、 効率がいいテキストエディタを使えるから ローカルで保存したほうが生産性高いだろ。 あのさ、自分が”出来ない”からって 素人向けの効率の悪いツールを 効率がいいんだってありがたがってちゃダメだよw
”出来る人” と ”出来ない人” の考え方が違うんだよね。 ”出来ない人” は自分の力では何も出来ないから 誰かが用意してくれたものの中から 一番生産性がいいものを探す。 誰かが用意してくれたものが限界。 誰かがお膳立てしなければ何も出来ない 知識も浅い。 "出来る人" は自分で生産性を高める。 誰かが用意してくれたものを使うこともあるが その中にとらわれることなく、 一番生産性がいいものを自分で作り出す。 自分で作り出すことで深い知識を得られる。 だから限界がない。
古い環境にしがみつく、滅び行く旧人類は去れよ
jsfiddleにしがみつく・・・ね わろたw
関数内で設定するプロパティの初期値はnullとundefinedどっちがいいですか?
coffee scriptのように ローカル変数を自動的に収集してまとめて関数の最初にvar出来るような そういうツール的なものありませんか?
そもそもvarを付けないとグローバル変数になるというのは設計ミスでは? 何も付けない場合はローカル、globalを付けた場合だけグローバルにしておけば こんなことにはならなかったのに・・
>>694 undefinedは基本的には自動的に設定される値
nullは自分で明示的に設定する値
http://jsfiddle.net/9L9Gv/ □をクリックすると、その□の回りに、線が表示されるようにしたいです
afterを使ってしようとしたのですが、
afterで追加した要素が、四角の上に来てしまいます
四角の後ろに来ないと、囲み線になりません
どうしたらいいのでしょうか?
>>673 出来るか出来ないかで言えば出来る。
シェルとかでランダム文字列生成してURI投げてHITするまでループ
ブルートフォースアタックで、ソースが丸見えに!!
これはいくらなんでもヤバ過ぎる!!個人情報が筒抜けに!!
ま、そんな感じだ。
ブルートフォースアタックしない限り見られないということは そこまで危険はないということですね ありがとうございました
"use strict"のようなモード切替で var周りの挙動を切り替えられるようになれば生産性が上がるのではないでしょうか? varの挙動はJavaScriptに打ち込まれた棘だとしか思えません このせいで大分面倒くせえ
>>701 ここで愚痴言ってないでES.nextのメーリングリストに投稿してくれば?
>>661 それは寧ろ throw を使わないケースでは?
>>701 strictモードではvar周りの挙動が代わってるよ
varの付け忘れで新しいグローバル変数を作ろうとすると例外が発生する
多言語対応についてですが、上と下どっちのやり方の方がいいですか? var data = { ja: { hoge: 'ほげ' }, en: { hoge: 'hoge' } } var data = { hoge : { ja: 'ほげ', en: 'hoge' } }
前者
data uriを使えば画像データを文字列で指定することが出来ます ということは、JavaScriptを使って動的に画像データを生成することも可能ということですよね そういうプロダクトありませんか?
後者の方が管理はしやすいのでは? 前者は、キー名が言語ごとに分散するけど 後者は、キー名は一つになるから
data[lang][word] になるか data[word][lang] になるかの違いだからどっちでも同じ気がするが 強いていうなら後者のほうがどの言語で未翻訳かが分かりやすい気がする
右クリックからリンク先のURLをポップアップで表示するChromeの拡張機能を作っています。 アラートではリンク先のURLが表示されるのですが、ポップアップではURLを表示することができませんでした。 また、ポップアップに文字を書き込むことを試したのですが何も表示されませんでした。 popup.htmlに別のjsファイルを読み込むようにしないとダメなのでしょうか? function popUp(info) { alert(info.linkUrl); chrome.windows.create({ "url":"popup.html", "type":"popup" },function(win){win.document.write("abc")}); } chrome.contextMenus.create({ "title": "ポップアップを表示", "type": "normal", "contexts": ["link"], "onclick":popUp });
win.document.writeのとこでalertしてみた?
alertしてみたらポップアップと同時にアラートが出てきて URLはアラートだけに表示されました。
714 :
Name_Not_Found :2013/08/29(木) 23:10:06.43 ID:MjIf6RW3
キャッシュも知らないのか 一から勉強してきた方がいい
>>705 > 多言語対応についてですが、上と下どっちのやり方の方がいいですか?
自分で考えるな。
すでにある多言語対応ライブラリを使え。
718 :
Name_Not_Found :2013/08/30(金) 00:32:24.53 ID:FGW0UWMx
多言語にライブラリ使うほど複雑な処理あるの?
>>719 そういうことじゃないんだよねぇ。
自分で作るなって話。
自分で作ると独自のシステムが出来上がって
それにしばられてしまう。
自分独自のシステムに、世界のライブラリが対応することはない。
俺ぐらいになると、よく知らない分野に手を出すときは
自分でプロトタイプを作って必要な機能を把握した後、
そのプロトタイプに近いライブラリを探す。
>>720 じゃあ最初に自分で作ってみないと何が必要か分からないじゃん
配列に内部カウンターを持たせて、 getを実行するたびに次の要素を返し、 カウンターが最後まで行ったら先頭に戻る こういうものを作る時、 素のJSオブジェクトにするのと、jqueryプラグインにするのと どっちがいいと思いますか?
724 :
Name_Not_Found :2013/08/30(金) 06:32:16.47 ID:zBjIfZv1
>>720 全部自分でやる(覚悟がある)なら別にいいんじゃね?
725 :
Name_Not_Found :2013/08/30(金) 06:33:17.58 ID:zBjIfZv1
ありがとうございました 速度的には大差ないと思いますが 名前空間が増えるのが嫌なのでjqueryのプラグインにしました あとプラグインにしておけばjqueryの存在を前提にできるのがメリットかな
背景色が白のliを消すことが以下のコードで出来ました $('ul li').filter(function(){ return $(this).css('backgroundColor') === "rgb(255, 255, 255)"; }).hide(); もし背景を#fffと指定したとしてもこれで消えます。 逆に==="#fff"では消えません しかし rgb(255, 255, 255) というフォーマットはブラウザ共通なのでしょうか? RGB(255, 255, 255) だったり rbg(255,255,255) だったりしないのでしょうか?
>>713 てことはwin.document.writeが間違いなんですわ
>>721 success入れ子でネスト無双が1番間違いない。
>>729 あー、オレと同じだわw
世間様からは蔑まれそうだけど、俺もネスト無双派。
731 :
Name_Not_Found :2013/08/30(金) 22:24:48.53 ID:1iL+MYud
ネスト無双ってどゆこと?
非同期処理を簡単に書く方法を 知らないってこと。
つか、裸足が奇跡なんだよ。
734 :
Name_Not_Found :2013/08/30(金) 22:51:24.49 ID:x4Mgu0Qg
getElementsByTagName について質問なのですが、 下記のような構造の、<div id="1">内にある<p>のみを取得するにはどうしたらよいでしょうか? <div id="1">に対してgetElementsByTagName()を使うと<div id="2">の中の<p>も取得してしまい困っています。 <div id="1"> <p></p> <p></p> <div id="2"> <p></p> </div> </div>
>>734 querySelectorAll('#1 > p');
ただ、IDの1文字目は数字にできないという事に注意
(多分単なるサンプルコードだと思うが念の為)
736 :
Name_Not_Found :2013/08/30(金) 23:04:29.91 ID:x4Mgu0Qg
>>735 ありがとうございます。さっそく試してみます。
737 :
Name_Not_Found :2013/08/31(土) 01:37:14.09 ID:xEgfT+qE
querySelectorを手作りしようと頑張ってた頃を思い出した
今はjQueryがあるからな。 querySelectorなんていらないな。 というか逆か jQueryを真似てquerySelectorが作られた
var array = [ [1,0,1,0,1], [1,1,1,1,1], [1,0,1,1,1], [1,1,1,1,1], [1,1,1,0,1], ]; という配列からランダムで0の部分のインデックスを取得したいのですが for(〜){
var array = [ [1,0,1,0,1], [1,1,1,1,1], [1,0,1,1,1], [1,1,1,1,1], [1,1,1,0,1], ]; という配列からランダムで0の部分のインデックスを取得したいのですが for(〜){ for(〜){ if (1 == array[x][y]){ } } } こんな感じにforとifで無駄になってしまいます とりあえず全ての0のインデックスを取得して、そこから乱数を生成して求めるのがいいと思うのですが よい方法をアドバイスおねがいします
0値のindexだけをもった配列を用意する その配列のlength内でランダムしてindex値を得る indexから元の配列の値を直接参照出来る こんな感じはどう?
最初の0値のindexだけをもった配列をjavascriptで作りたいのです 手動じゃなくて
フォーム部品のスタイルを、ie8も含めたクロスブラウザでフラットデザインな感じに統一できるプラグインはありますか?
条件を指定した変数の作成について質問です var a = if(true){ 1; }else{ 2; } var a = try{ 1; }catch(){ 2; } のように書いてもシンタックスエラーで動かないので var a = (function(){ if(true){ return 1; }else{ return 2; } })(); if(true){ var a = 1;}else{ var a = 2; } のようにして行っているのですが わざわざ関数を使ったりvarを複数書いたりと不格好な気がします このような場合、一般的にどう書くものなんでしょうか
それを作るのがお前の仕事です。
var a = true ? 1 : 2; 三項演算子知らない? ほとんどの言語に有るんだけど。
a = true?:2; php5.5みたいにこういう方ってできない?
749 :
Name_Not_Found :2013/08/31(土) 16:18:32.70 ID:5cULsWAq
>>742 全部joinしてbinとして扱うと楽そうですな
binって?
(二二) んvヘゝ / 逝印ヽ | (゚Д゚) | (ノ |) | * | ヽ___ノ ∪∪
|::::::::::::::: ∧_∧:::::::::::: __ (´・ω・`) :::::::: すみません、ここでうんこしていいですか? ◎ー) / \::::::::: | | (⌒) (⌒二 ):::::::::::: ~~~ /⌒ヽ( ̄、 ヽ___ / Lヽ \ノ___ ゙ー―――(__)---
>>742 最初に 値が 0 のインデクスをランダムに生成してから
2次元配列を生成すればおk
754 :
753 :2013/08/31(土) 18:34:24.13 ID:???
意図読み間違えた…
755 :
744 :2013/08/31(土) 19:45:47.22 ID:???
756 :
766 :2013/08/31(土) 21:07:26.28 ID:Mxx3VbWh
テーブルで1 sec ago , 50 sec ago , 1 minute ago , 42 minute ago といった列をソートするにはどうすればいいのでしょうか?教えてください
>>755 細かいことを言えば、ごちゃごちゃしてくるんで
最終的には、JavaScriptはこういう文法の言語ということにしかならない。
JavaScriptでは
ifは{}中を戻り値として返すという動きはしない。
ifはundefinedを含めて何かを返す機能は持っていない。
だから値として使うことは出来ない。
それだけの話
758 :
758 :2013/08/31(土) 21:37:22.28 ID:???
>>756 文字列をパースしてすべて秒に変換し、それをもとにソートすればいいのでは。
760 :
756 :2013/08/31(土) 21:51:23.86 ID:Mxx3VbWh
>>759 >文字列をパースしてすべて秒に変換し、それをもとにソートすればいいのでは。
それは難しそうでほかの行もあるので・・・
それと言い忘れましたがtablefilterっていうやつを使ってやってます
やっぱりtablesorterでもソートできませんでした
ちなみに
id 1 時間
id 2 時間
id 3 時間
とidに関連ずけて時間を登録させています
idが大きくなるにつれて新しい時間です
ひらめいたのですが
idを別の表に保存してあり
http://example.com/id.htmlのように保存していくのですが そのidの列を利用してソートさせたいです
時間っていう列を押したらidの列がソートされるようなtablesorterのやりかたとかありませんか?
それかそういうjavascriptのプラグインなど
>>760 「時間っていう列を押したらidの列がソートされる」ようにイベント使ってコード書けばいいだろ
指定した列でソートさせる方法なんてtablesorterでググったらすぐ出てきたぞ
自分でちょっとは調べたのか?
762 :
Name_Not_Found :2013/08/31(土) 22:09:43.86 ID:5cULsWAq
>>760 replaceで
/(\d+) minute (\d+)sec/
みたいに検索して、第二引数の関数で分と秒の数字拾えばパースは簡単じゃろ
んで、それをソートして、trも同様に入れ替えてやれば
丸投げ君ver0.1
764 :
744 :2013/08/31(土) 22:13:57.63 ID:???
>>757 レスありがとうございます
エラーになるのは文法の仕様ということで理解出来ました
そして{}中という説明でやっと気付くことができました
ifやtryの{}中は新たにネストされた空間だったんですね
お陰で今日は気持よく眠れそうです
765 :
756 :2013/08/31(土) 22:53:40.08 ID:???
>>762 javascriptでsort作ったことがないので・・・
jqueryを利用したソースコードを出してくれればありがたいです
ちなみにパースはわかります
丸投げ君 ver0.2をアップデートしました
767 :
756 :2013/08/31(土) 22:58:32.42 ID:???
>>762 今見たらtablesorterに指定した列を利用してソートするってありました・・・
一応それで試してみます
この際Javascriptの勉強のためにソースコードを教えてほしいです
パースするのはわかりますが
それを比較して他の列も並び替えたりするのがわかりません
本当に勉強のためなら配列をsort()を使わずにソートする方法から学べ それがかければテーブルのソートもかける
>>767 JavaScriptの本をなにか一冊買えば?
「教えて欲しいです」じゃなくて自分から学んだほうがいいよ
771 :
Name_Not_Found :2013/08/31(土) 23:41:24.13 ID:NSpkeR09
>>767 スマホなんでこれで勘弁して
JS以外の言語は知ってそうだから
配列にいれる数値とtrのカップリングはお察しくだされ
配列.sort(function(a,b){
if(a>b){
aの入ってたtrを前に;
return 1;
}
else{
aの入ってたtrを後ろに;
return -1;
}
});
772 :
Name_Not_Found :2013/08/31(土) 23:42:50.04 ID:NSpkeR09
なんか間違ってる気がしてきた 見なかったことにして 酔った頭で書くもんじゃないね ごめん
773 :
756 :2013/09/01(日) 00:43:02.55 ID:???
>>771 var ary=['3 minute ago','10 minute ago','10 sec ago','20 sec ago'];
var obj=new Array();
$.each(ary,function(){
if(this.match(/minute/)){
obj.push(this.replace(/(\d+) minute ago/,"$1")*60);
}else{
obj.push(this.replace(/(\d+) sec ago/,"$1"));
}
});
obj.sort(function(a, b) { return a < b ? -1 : 1; });
$.each(obj,function(){
alert(this);
});
パースして値を取得しソートしましたけど配列になってます
ここからthをクリックしてアクションを起動させるのはわかりますが
他の列のtd要素などの順番もあわせるにはどうすればいいのでしょうか?・・・
丸投げ君 ver1.00 リリース ・回答追尾機能の改善 ・マルチポスト機能実装
JS系の疑問をググるとstack overflowがやたらひっかかるのはなんでですか?
twitter bootstrapで、dropdownに初期選択状態を指定して開きたいです class="active"にすれば選択状態にできることが分かったのですが、 dropdownを開いて他の選択肢にマウスを乗せても、 activeにした項目が選択状態のままになります。 しかしあくまで初期値として選択したいだけで、選択したままにしたいわけではありません マウスが他の項目に乗った時には選択が外れるようにするにはどうしたらいいでしょうか?
(function ($){ if ( $.escapeHTML ) { throw 'already exists';} $.escapeHTML = function (str) { return str.replace(/&/g, '&').replace(/\\/g, '\\\\').replace(/"/g, """).replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>'); }; }(jQuery)); htmlエスケープをするjqueryプラグインはこれでいいですか? 改良点はありますか?
nullがぬけてますね それとエラーかくにんぐらいしろよバカ
nullがどこに抜けているんですか?
>>777 それをjQueryプラグインにする意味がわかりません。
>>779 &(のチェックが)ぬけてますね
"(のチェックが)ぬけてますね
チェックとは? 何を言っているのか分かりません
それはバカだからわからない
お前が?
だからjQueryプラグインにすんなって。
知識がないから煽ってコードを書かせようとするタイプの質問者
>>782 何を言ってるのか分からないならXSSでググって勉強したほうがいい
789 :
Name_Not_Found :2013/09/01(日) 13:54:04.15 ID:X3qMNIfG
>>773 sortの比較関数の中で
trの入れ替えも一緒にやっちゃえ
ということ
>>787 この間の「まじめに答えてください」の奴だな
791 :
756 :2013/09/01(日) 15:07:22.06 ID:cSgqmEOH
テストデータの降順で表示させるtrソートはかけましたが for( var i=1;i<tr.length;i++ ){ var c = tr.eq(i).children(); for(j=0; j<tr.length; j++){ d = tr.eq(j).children(); if(c.eq(6).text()>d.eq(6).text()){ w=tr.eq(i).html(); tr.eq(i).html(tr.eq(j).html()); tr.eq(j).html(w); } } } あとは1 mute ago 20 sec agoでやるだけですが javascript初心者なのでこの時点でソートに関するおかしいところありますか?
|::::::::::::::: ∧_∧:::::::::::: __ (´・ω・`) :::::::: すみません、ここでうんこしていいですか? ◎ー) / \::::::::: | | (⌒) (⌒二 ):::::::::::: ~~~ /⌒ヽ( ̄、 ヽ___ / Lヽ \ノ___ ゙ー―――(__)---
>>791 ここに貼り付ける前にデバッガでエラーの確認をしましょうよ
何でも他人任せでコード書かせようってのが本当丸見え
794 :
756 :2013/09/01(日) 18:56:03.69 ID:wip4Sk3m
>>793 テーブルソートが書けたので
おかしいところなどを尋ねてるだけです・・・
・・・
>>794 ソートできていれば正しいし、できていなければおかしいところがあるのだろう
そういうチェックを自分でやれって言ってるんだよ
>>794 お前ほんと人間のクズだな
小学校からやり直して対人マナーを覚えるべきだ
リアルに中学生だろ?明日から学校がんばれや
これはもうただのマゾだな
どこがどう間違っているのかという 「技術に関する事実」の話だけして下さいね
そんな態度のやつに教えてあげようと思う人間がこの世にいるとでも思うのか 学校の先生は金を貰ってるから失礼な馬鹿にでも丁寧に教えるんだぞ
だからリアル中学生だって。
805 :
756 :2013/09/01(日) 21:29:11.05 ID:58bQoyxD
すみません、自己解決しました。 教えてくださった方、どうもありがとうございました。
>>800 のjsperfを参考にして
(function ($){
if ( $.escapeHTML ) { throw 'already exists';}
$.escapeHTML = function (str) {
return str.replaceAll('&', '&').replaceAll('"', '"').replaceAll("'", ''').replaceAll('<', '<').replaceAll('>', '>');
};
}(jQuery));
と、replaceAllを使うように変更しました
ありがとうございました
ちなみに何故jqueryプラグインにするかですが、 とりあえずjqueryプラグインにしておけばモジュール化されて取り回ししやすいからですよ
普通の関数だと、それがモジュール化を前提とした流用可能な関数なのか、 ドメスティックな処理なのかが判別しにくいですが プラグインにしておくと、一発で流用可能な処理だと分かるので。 もっと合理的な方法ありますか?
>>799 >エラーなんて出ませんが?
ワラタ
実行してないのか、デバッグツールでエラーの見方も知らないのかどっちかだな
今コピペしなおして実行したらエラー出ました 動いていたと勘違いしていたようです すみません
>>807 > とりあえずjqueryプラグインにしておけばモジュール化されて取り回ししやすいからですよ
なんでモジュール化するって話にjQueryプラグインがでてくるんですか?
jQueryプラグインにしなくてもモジュール化出来るでしょ。すごく簡単に。
jQueryプラグインにすると、jQueryを使わない場合に使えません。
なぜ意味もなくjQueryにくっつけようとするのですか?
jQueryに依存しないもの(エスケープコードのどこでjQueryを使っていますか?)を、
jQueryに依存させるのはモジュール化とは正反対の考え方です。
モジュール化するというならば、なおさらjQueryプラグインにするべきではありません。
おまいらはこういう厨房に10年後20年後にあごで使われるんだよwwwwwwwwwwwwwwwwwww
自前でモジュール化すると、モジュール管理のフレームワークなりガイドラインなりが必要になりますよね そういうのを考えるのが面倒だからです デメリットがあるのは分かりますが、 もはや使わない方が珍しいjQueryのプラグインにしておくのは実用的かつ現実的な解かと
お前の上司はこんな奴でも勤まるのか 変な会社で働くことになって可哀相だな 早く転職しろ
>>813 ガイドライン?
なんでそんなに複雑に考えてるの?
一体どんなガイドラインが必要なのさ。
jQueryを使わないでモジュール化したとして、
お前はどんなガイドラインを作るのか言ってみろ。
本当はモジュール化もガイドラインも
作ったこと無いんだろう?
>>813 あんたがやってるのは典型的な例だから
どういう行為か教えてあげるよ。
新しい技術を知った時、
全てそれでやってしまう行為
よくいるんだよね。
配列を知った人が、全部配列を使って作ろうとしたり
継承を知った人が何でも継承で作ろうとしたりね。
まあ、よくあることだから恥ずかしくないよ。
将来成長したら、あの時やっていたことは
恥ずかしい事だったって思うだけだからw
>>806 これが動かないのでおかしいと思ったら
replaceAllは拡張された関数なんですね
中身は結構複雑な正規表現なので、正規表現オブジェクトをキャッシュするようにしたらもっと速くなるかも
デメリットがあっても大したことないからjqeuryプラグインにしてるんですよ 困ったら困った時点で変更すればいいでしょう そんなにめくじら立てることではありません
|::::::::::::::: ∧_∧:::::::::::: __ (´・ω・`) :::::::: すみません、ここでうんこしていいですか? ◎ー) / \::::::::: | | (⌒) (⌒二 ):::::::::::: ~~~ /⌒ヽ( ̄、 ヽ___ / Lヽ \ノ___ ゙ー―――(__)---
822 :
Name_Not_Found :2013/09/02(月) 00:22:23.26 ID:lvHvx23y
var ary=new Array(); ary.push(a,b); $.each(ary,function(){ this }); thisのa,bに代入させる方法ありますか? うまくいきません 教えてください
ary.push({a:a,b:b});
>>820 君はプロじゃないね。
メリットがなくて、デメリットが有る。
それは明白。
なのに、技術不足で、jQueryプラグインにしか出来ない。
それを他人のせいにする。俺はわかるけど他人が〜と言いつつ
お前の技術不足。
825 :
Name_Not_Found :2013/09/02(月) 00:43:57.77 ID:lvHvx23y
>>823 動きません
Uncaught TypeError: Object #<Object> has no method 'match
826 :
Name_Not_Found :2013/09/02(月) 00:57:41.25 ID:lvHvx23y
関数作ってみたらできました
> var ary=[]; > ary.push(1, 2); > arr.splice(0,2, 3,4) > console.log(arr) [ 3, 4 ] jQueryなんていらねぇよw
変数がごちゃまぜになったw > var ary=[]; > ary.push(1, 2); > ary.splice(0,2, 3,4) > console.log(ary) [ 3, 4 ]
829 :
Name_Not_Found :2013/09/02(月) 01:18:37.43 ID:lvHvx23y
とりあえず昨日の時間ソートできました ありがとうございました
(function ($){ if ( $.escapeHTML ) { throw 'already exists';} function escapeHTML(str){ escapeHTML.text.nodeValue = str; return escapeHTML.div.innerHTML; } escapeHTML.div = document.createElement('div'); escapeHTML.text = document.createTextNode(); escapeHTML.div.appendChild(escapeHTML.text); $.escapeHTML = escapeHTML; }(jQuery)); replaceAllはプロトタイプに追加するのに抵抗があり、 DOMを使う方法も速いようなので以上のようにしました 速度的なチューンもこれが限界だと思いますが、もっと改善できるところありますか?
DOMは遅いので使わない。 jQueryは意味が無いので使わない。
どんどん悪化してるなw
DOMは遅いって単なる思い込みでは? jsperfの結果見てから言って下さい そもそも正規表現も遅いんです
いやDOMアクセスはたしかに遅いですが この場合他の方法よりも速いんです
836 :
Name_Not_Found :2013/09/02(月) 01:50:19.65 ID:IpDrG7xf
このスレの解答者は馬鹿しかいないから聞くだけ無駄
DOMは遅い たぶんjsperfの使い方間違ってる
うん。
>>835 の結果でも
DOMは遅いって出てる。
いやはや、シンプルが一番ベスト
素人は無意味に難しくして
糞なコードを書くという
典型的な例だ。
>>835 それでは遅いですね
正規表現版は置換する文字が足りないし、
DOM版はキャッシュしてないので改善する余地がありますが
一考の余地はありますね
ありがとうございました
だから最初から言ってるだろ。 DOMは遅いので使わない。 jQueryは意味が無いので使わない。 アドバイスしてやったんだから ちゃんと話し聞けや。 お前よりアドバイスできる俺のほうが 技術的に上なんだから。
843 :
Name_Not_Found :2013/09/02(月) 02:02:04.72 ID:IpDrG7xf
技術的に上なんだから(キリッ
844 :
Name_Not_Found :2013/09/02(月) 02:03:05.09 ID:IpDrG7xf
このスレは質問者も低脳だな
>>842 一番はやい緑のグラフに
カーソル合わせてみろ。
string replaceAll method
って表示されるだろ。
もしかしてHTMLエスケープで’や"や\をエスケープする必要ってないのでしょうか? DOM法ではこれらの文字はエスケープされないし。 jsperfで<.>,&以外をエスケープする処理とDOM法を並べて比較してるのはおかしいですね・・
とりあえずエスケープされる文字を意思的にコントロールできないDOM法はあまりいい方法ではないですね
そもそもHTMLエスケープなんてjqueryが標準でもっておくべきだと思うのですが 何故ないのでしょうか
おいおいこいつの日記帳になっとるがな
>>851 スレチ
ChromeのことはChromeスレで聞け
普通にやればリロードしません
普通にやればの定義とは?
「#a, #b, #cの部分を書き換えるけど」これは具体的に何をするの?
857 :
853 :2013/09/02(月) 12:17:15.47 ID:???
すいません、ちょっと勘違いしていたとこがあるので取り下げます
何を勘違いしていたか釈明する義務があるよ
後の事故解決である。
うっせーな
そんなのはブラウザ依存だろ
だからどうやってハッシュを変更したときだよ
適当にaタグで変えてみるとChromeはアイコンかタイトルがチラつくな IEやFirefoxはチラつかん
勘違い宣言まだー???
あーもーいーゃ
867 :
861 :2013/09/02(月) 13:39:55.25 ID:???
∧,, ∧ (`・ω・´) <諦めます U θ U / ̄ ̄T ̄ ̄\ |二二二二二二二| | | パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ パシャ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ( )】 ( )】 ( )】 【( ) 【( ) 【( ) / /┘ . / /┘. / /┘ └\ \ └\ \ └\ \ ノ ̄ゝ ノ ̄ゝ ノ ̄ゝ ノ ̄ゝ ノ ̄ゝ ノ ̄ゝ
var test = {} test.a = function(){ } test.b = function(){ } test.c = function(){ } こうやってクラスのメソッドみたいな感じでコード書いてるんですが これのメリットとデメリットをおしえてください
誰がコードを書いてるんだよw お前が書いてるならメリットも考えずにそう書いてるのか?w
何と比べたメリットとデメリットだよ・・
いちいちうっせ
うっせーな あーもーいーゃ いちいちうっせ
873 :
868 :2013/09/02(月) 14:01:23.99 ID:???
答えられないバカどもは書きこまなくていいので、誰か早く教えて下さい。
なんちゃって
>>873 誰(どういう立場の人)が書いてるかによってメリットもデメリットも異なるから、
それを答えて貰わないと何も言えない。
コードの良さや仕様は立場に左右されるんだっておwwwwwwwwwwwwwwwwwwwwwww
質問といいますか相談なのですが、最近letを使ったサンプルをよく見かけます。 letを使えばブロックスコープだし、仕様通りならvarのような繰り上がり宣言も起きないので、 もう基本的に全部letにしようという流れが広がっていて、自分もそれに乗りたいのですが1つ悩みがあります。 それは、letで宣言すると遅い、特にfor(let i=0〜とした場合に致命的なほどにvarより遅くなります。 普通に考えて最低iを参照する時くらいは、ブロックスコープの方が速いように思いますし、他言語のそういう情報も見たことがあります。 これは、将来的に解決されるのか、本質の問題なのかが気になります。 前者なら思う存分使っていくつもりです。
878 :
Name_Not_Found :2013/09/02(月) 15:04:23.45 ID:SFqiwg5N
>>868 スコープの管理が面倒臭くなりそうな悪寒
>>868 冗長でわかりづらい。
ES6ならこう書けるんだし
var test = {
a(){},
b(){},
c(){},
}
functionないのは気持ち悪いな
ES5でもセッターゲッターはfunctionいらない obj = { set a(){}, get a(){} }
882 :
Name_Not_Found :2013/09/02(月) 18:41:58.93 ID:Slxu/WVg
え、みんな var test = { a : function(){}, b : function(){}, c : function(){} }; じゃないの?
それはそれであんまり美しくないな
ゲッター、セッターの事も考えると、リテラルはリテラルでも
>>879 のES6verがいい
function書かなくていいのはすごい嬉しいけどなあ arrow functionと合わせてとても助かる
今月のES Meetingの結果(おそらく可決)によってはこうも書けるようになる。 var test = { a: => { }, b: => { }, c: => { } }; 最早どちらがいいかは好み次第かな var test = { a() { }, b() { }, c() { } };
コーヒースクリプトじゃん JSはコーヒースクリプトになっていく?
887 :
Name_Not_Found :2013/09/02(月) 20:48:43.55 ID:UWCmo/Nr
流れぶった切って実用的な話ですみません ページ遷移時に $(window).on('beforeunload',function(){ return 'あああああ'; }); というのをiPhone/Androidでもやる場合ってどうすればよいですかね? pagehideイベントは拾えるのですが、キャンセル出来ませんでした
何を今更 昔はJAVAやPerlを、今はPythonやRubyなんかを参考に拡張してるだけでしょ
>>886 coffeescriptとは全然違う
ブロック構造をインデントで表現したりせんし
>>887 結論から言うとonbeforeunloadの代替は不可
ブラウザを恨むみながらクソして寝ろ!
>>889 逆にいうとそこしかCoffeeScriptの特徴はない?
892 :
Name_Not_Found :2013/09/02(月) 20:57:07.63 ID:UWCmo/Nr
a = range(0, 10) ってやったら a = [0,1,2,3,4,5,6,7,8,9] って配列に変換したり b = a[0..2]ってやったら偶数インデックスの値のみ取れる機能とかほしい // b is [0,2,4,6,8,] Arrayオブジェクトはもっと他の言語を見習って拡張してほしい
copySliceとかfillとか付いたし、オブジェクトとしては概ね十分なんじゃね 構文レベルの話なら配列内包が便利かもね というか[0..2]で偶数インデックスって意味わからんけどな それをいうならslice(0,2)と同じ効果だろう 負数のインデックスとかはDProxyでできるしね
2ちゃんじゃなくてプログラムに特化した掲示板がほしい
StackOverflow使えば良いじゃん
逆にMarkdown記法で ```javascript 〜ソース〜 ``` と書くようにして専ブラで対応しよう。
>>896 あそこ規制が厳しいだろ
なんか質問できなくなってたし
20ポイント以上もってないとチャットできないとかな
ブラウザ拡張機能タイプの専ブラであれば それのまた拡張機能を作ることは容易い 皆の強力次第
フロント側のCoffeeScriptとかTypeScriptは サーバーサイドを何で書くかで選べばいいと思う。 サーバ側がRubyやPython : CoffeeScript サーバ側がJavaやC# :TypeScript, Hexa, Dart ってなところかね。 サーバー側がnode.jsなら、何選んでもいい。
CoffeeScriptは廃れ始めてるし、TypeScriptは仕様フラフラで保守性最悪 どうせならDartくらいで書きたいが、見通し不明でお手上げ
JavaScript自体を改善した方がいいな 文法まで変えるとかやりすぎ
JSの互換性を残したままの改良には無理があると考えるのがDartで なんとか改良していこうとしてるのがES.nextなのね
Dartはむしろ、言語ってよりはプラットフォーム目指してる気がする DartVMとか面白そうだし
文法がゴミ 本当に嫌いだわ Perlみたいにしてくれよ 使いづらくてしょうがねーわ
DeNAのarctic.jsももう更新しないらしい(働いてる人が他のライブラリ進めてきた) arctic.jsに似たライブラリありませんか?
ライブラリだけの質問はライブラリ総合質問所へどうぞ
わかりました
909 :
Name_Not_Found :2013/09/03(火) 17:29:19.30 ID:Z6711ylx
perlに文法なんてあったっけ?
C++なんかと比べるとサクサク書けて好きだけどな 大規模開発に使うなら別言語でどうぞって感じ
大規模開発に必要なのは間違ったように書くのが困難ってことじゃないかと思う。 それと手軽に書けるを両立するのは難しいだろうね。
$_ 言語
女の子をあんあんw言わせない方法を教えてください
PCの音量を下げてください。
|::::::::::::::: ∧_∧:::::::::::: __ (´・ω・`) :::::::: すみません、ここでうんこしていいですか? ◎ー) / \::::::::: | | (⌒) (⌒二 ):::::::::::: ~~~ /⌒ヽ( ̄、 ヽ___ / Lヽ \ノ___ ゙ー―――(__)---
jsFiddleは結果画面の横幅をあまり広くできないので、 bootstrapがモバイル用デザインになってしまいます jsFiddle的なサイトで、結果画面の横幅を広くできるものはないでしょうか?
ライブラリの質問ではなくjsの開発環境についての質問です
JSerならサイトの不満はユーザースクリプトやスタイルシートで直せばよかろう
拡張機能でページ読み込み時にjavascriptで書き換えちゃえばいいだけの話
923 :
Name_Not_Found :2013/09/04(水) 12:56:40.40 ID:P72hxApy
>>918 >>1 を見て、それでも満足出来ないなら
自分で用意すればいいんでね?
タンポンいれて数時間後 膣にへばり付いてなかなかとれなくて 思いっきり引っ張ったら紐が切れて いよいよ自分でとるのが困難だと悟って 病院に行ったら男の先生がとってくれて 凄く恥ずかしかった。 今はソフィのボディフィットです
言葉遣いだけは丁寧だが、自分では何一つ考えようとせず いつも100%の解答だけを要求して好き放題暴れまくり ちょっと叩かれるとすぐ火病る、あの慇懃無礼な基地外が 作戦変えて来たんかな?
926 :
Name_Not_Found :2013/09/04(水) 14:46:23.32 ID:mE/Ejuj4
<script type="text/javascript"> function move(WK) { obj = document.getElementById(WK); y = obj.offsetTop; scrollTo(0,y); }; </script> <div id="oya"> <div id="ko"> <input type="button" value="1つ目" onclick="move('A')"> <input type="button" value="2つ目" onclick="move('B')"> </div> <div id="mago" style="height:300px;overflow:auto;"> <a name="A">一つ目</a><p>Aの色々な文章</p> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> <a name="B">二つ目</a><p>Bの色々な文章</p> <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> </div> </div> koにあるボタンを押したらmagoのアンカー位置にスクロールさせるにはどうしたら良いのでしょう?
プライベートメンバを実装する方法として、Symbolというものを使うといいと聞きました それで、詳しく調べようと思ったのですが、情報が見つかりません そもそもV8にしか実装されていないようなのですが、Nodeで使うためそこは問題ありません どなたか情報を持っている方はおられますか?
>>926 アンカーにnameは使うな、idにしろ
function move(WK) {
location.hash = WK
}
929 :
926 :2013/09/04(水) 15:21:00.57 ID:mE/Ejuj4
>>927 詳しくも何も
sym = Symbol()
として
あとは
obj[sym] = hogehoge
として使っていくだけ
symbol型キーのメンバは絶対に列挙されないし
キーを持たないものからは触れられない
PHPの class Test { public function a(){} private function b(){} } これと同じ挙動をするJavaScriptの書き方ってできませんか?
>>931 var Test = function () {
this.a() = function() {}
var b = function(){}
}
でいいんじゃないの?
933 :
Name_Not_Found :2013/09/04(水) 16:32:11.80 ID:SLvIeS+1
>>925 そんな奴おらんやろ
頓珍漢な回答をしてきて、その間違いを指摘してあげると
感謝するどころか逆恨みしてくる回答者ならいるけど
それも十分キチガイだな
936 :
918 :2013/09/04(水) 20:23:23.08 ID:???
jsbinは画面構成を変えられるので横幅を広くできました ただbootstrap3だとJSがうまく動かないらしく、 dropdownが動作しませんが・・ bootstrapはfiddle系サービスで動作させるには複雑すぎるのかもしれません ありがとうございました
937 :
918 :2013/09/04(水) 20:30:34.29 ID:???
あ、Run with JSをクリックしたら動きましたw 失礼しました
しかもフル画面でも動作させられるのですね これはすばらしい
日記はVIPかどこかでやってね
940 :
Name_Not_Found :2013/09/04(水) 21:03:42.25 ID:SLvIeS+1
解決した内容の報告はいいんじゃね? こんなん、俺も知らなかったし
>>939 技術に関する書き込みなんだから問題ねーよ
お前みたいな書き込みが一番無用
誰の役にも立たない
有用無用以前に一度スレチと言われた事を何レスも使って報告するのはマナー違反でしょうよ
くだらねぇJavaScriptの質問はID出して書き込みやがれVol.108
だからjsFiddleとかはスレチじゃねーよ馬鹿
あーもーいーよ
JavaScriptの質問じゃなくてサイトの使い方の質問じゃん。 そんなんに何十レスも使わせんな。
jsbin、フレームサイズ調整状態にしてからカーソルを下の方に持っていくと 結果画面が横置き出来ますね よくできてるなぁ
>>930 ありがとうございます
また暫く自分で使ってみて活用できるようにがんばります
parseInt("10", 2)で2真数の結果にならないのはなぜですか?
950 :
Name_Not_Found :2013/09/05(木) 09:25:48.65 ID:P+EyvhxF
>>949 なるが?
parseInt("10", 2) // 2
parseInt("11", 2) // 3
あくまでintとしてパースするんだぜ
すいません勘違いでした
ページ遷移せずJavaScriptを実行するmenuに <a href="#"></a>を付ける理由は何ですか? URLに#が付いて嫌なんですが
jQueryを支障なく使えるということは JavaScriptを使いこなせてるということになりますか?
jQueryを取り上げられてjQueryを利用してるときと同じことができる?
PHPを支障なく使えるということは C言語を使いこなせてるということになりますか? Scalaを支障なく使えるということは Javaを使いこなせてるということになりますか? って聞いてるようなもの
958 :
Name_Not_Found :2013/09/05(木) 10:29:21.46 ID:P+EyvhxF
JSが使いこなせていなかったら jQueryを支障なく使えるということはなさそうな気もする
このスレを見る限りjQueryerの質はあまり高くない
モーダルウインドウを作り、中にタブを設置し、 タブを切り替えると、モーダルウインドウのサイズもコンテンツにあわせて変化する その変化はスムーズにする という、最近よく見るやつをしたいのですが、 サイズをスムーズに変化させるにはどうやればいいですか?
それそもそもモーダルウインドウじゃないだろ
疑似モーダルウィンドウ?
モーダル、あなた疲れているのよ
ちゃんと説明できないのならURLを貼れ
966 :
Name_Not_Found :2013/09/05(木) 14:55:20.10 ID:P+EyvhxF
>>960 一定時間ごとにウィンドウのサイズを変えればいいよ
requestAnimationFrameはディスプレイのリフレッシュレートと同期してるわけじゃないからなめらかは無理
ボヘミア潤す川よ
tr[i]の中身のtdとかをjqueryで操作したいんですがどうすればいいんでしょうか? tr[i]ってやると object htmltablerowelementってでてきます jqueryで簡単にアクセスする方法教えてください
この前にソート君か
$(この中にオブジェクト入れる)
tr.eq(i).children(); でできました
5509.me/log/incremental-search-with-jquery このインクリメンタルサーチを複数列に対応させるやり方教えてください
す・み・ま・せ・ん で・き・ま・し・た
どうやら<a href="#">でもURLに#が付く場合と、付かない場合があるようです どういう条件でURLに付くのでしょうか?
飛び先でエラーが出てる時には#が付く、 それ以外には付かないようです エラーさえ出さなければ#が付かないので問題ないですね 失礼しました
979 :
Name_Not_Found :2013/09/06(金) 06:40:14.27 ID:+9iJ140j
>>975 フォーカス当ててEnterでクリック出来る、とかそんくらいじゃね?
10年ほど前は敬虔なストリクト信者だったので
「リンクじゃないのに<a>要素を使うのはけしからん!」とか
「JSがなかった時もHTMLとして成立していないといかん!」とか思ったもんだけど
最近は、どーでもいいよ仕様に過不足なく動けば、と思ってる
なるほど aタグならキーで選択できますね ありがとうございました
>>975 そういうリンクがあるサイトを閲覧するのが嫌なので、リンクをクリックしても#がつかないようにしたい質問なのか
自分がそういうリンクを作ってしまい、#をつけない方法を知りたいのか
どっちを質問してるのかわかりません
983 :
Name_Not_Found :2013/09/06(金) 10:53:22.14 ID:+9iJ140j
>>980 focusさせるのにa要素は必須ではないですけどね。
tabindexを知らない人が使ってるだけでしょう。
どちらにせよ良いやり方じゃないな Web Componentとかでオリジナル要素を作るのが一番具合が良さそう
>>975 タブの遷移でもURLルーティングさせたい場合に使う
固定横幅の領域に、可変長文字列を表示したいと思います 長すぎる場合は省略します 文字数で制限すると、半角と全角で随分文字サイズが違うので、チグハグな感じになります 文字列のピクセル幅を知るには、透明化した計測用要素に文字列を入れて測るしかないでしょうか?
>>987 省略とはちょっと違うけど
CSS で overflow:hidden としてやれば
長過ぎる部分は勝手に隠れてくれるんじゃないか?
たしかに、これなら自動的に省略できますね ありがとうございました
987の件ですが、なんと目的そのままの text-overflow: ellipsis; というものがありました 省略時には...を表示してくれます
よかったじゃん
あやうく横幅計測処理を書くところでした ありがとうございました
text-overflow: ellipsis; は、1行表示時は便利なんだけど 複数行表示には対応してないんだよね
本当にできないのか? 最近のCSSはカオスだからどうにかしたらどうにでもできそうで頭痛い テキストの見かけに関わる辺りの機能って特にここ1年くらいでわんさか実装されてきてるし ただのJSerにはもう把握し切るの無理だわ
欲しい機能は大抵直球で既にあると思っていい世の中になってきたかな?
そうだな あとはその直球情報に最短でたどり着けるかどうかの 検索力かな
もう少し皆、自分が詳しい情報を公開していかなくちゃな そう思って自分も僭越ながらブログ始めたわ
あ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。