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

    私的良スレ書庫

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

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

    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
    901 : Name_Not - 2014/03/10(月) 00:13:39.58 ID:??? (-1,-30,-22)
    >>900
    デフォルトCSSで body { margin: 8px } が指定されているから
    902 : Name_Not - 2014/03/10(月) 00:19:27.61 ID:??? (+75,+11,-18)
    offsetはbodyが基準になるんですね
    親要素との相対位置と思い込んでました
    ありがとうございました
    903 : Name_Not - 2014/03/10(月) 00:22:36.45 ID:??? (-2,-30,-31)
    html,body{margin:0;padding:0;}
    904 : Name_Not - 2014/03/10(月) 00:43:21.34 ID:??? (+73,+29,-37)
    >>902
    まず、思い込む前に offset の機能を調べた方がいい
    http://api.jquery.com/offset/
    http://developer.mozilla.org/ja/docs/Web/API/element.offsetTop
    その癖を直さないと、同じことを何度も繰り返すよ
    905 : Name_Not - 2014/03/10(月) 01:32:03.35 ID:??? (+3,-30,-30)
    The .offset() method allows us to retrieve the current position of an element relative to the document.
    906 : Name_Not - 2014/03/10(月) 01:47:41.97 ID:??? (-1,-29,-53)
    offsetはdocument基準のオフセット座標でpositionはoffsetParent基準のオフセット座標なんですね
    でもオフセット座標がまだいまひとつ分かっていません
    907 : Name_Not - 2014/03/10(月) 01:55:12.79 ID:??? (+57,+29,-14)
    JavaScript第六版にかなり詳細な説明がありました
    覚えていないということは、ほとんど読み飛ばしたのでしょう
    ちゃんと読んでみます
    ありがとうございました
    908 : Name_Not - 2014/03/10(月) 04:08:42.08 ID:??? (+31,-25,-27)
    質問です。http://www.imjfenox.com ここのサイトのlogoがスクロールすると小さくなるのですが、これはどのように書けばよいのでしょうか?
    教えて下さい。宜しくお願いします。
    909 : Name_Not - 2014/03/10(月) 05:36:54.19 ID:??? (+52,+30,+0)
    910 : Name_Not - 2014/03/10(月) 06:01:03.40 ID:??? (-1,-29,-8)
    質問するときはjsbinとかjsdoitとか活用してほしいなあ
    911 : Name_Not - 2014/03/10(月) 06:03:48.24 ID:??? (+26,-29,-31)
    UTF8の「幅なしスペース」をソース中の文字列として記述したいのですが
    どうしたら出来るでしょうか
    912 : Name_Not - 2014/03/10(月) 06:32:00.19 ID:??? (+0,-23,-5)
    ソース中の文字列とは?
    913 : Name_Not - 2014/03/10(月) 06:41:03.91 ID:??? (-2,-30,-28)
    alert("\u00a9");
    ユニコードを表示させたいって意味とは違うのかい
    914 : Name_Not - 2014/03/10(月) 09:50:33.06 ID:??? (+51,+19,-20)
    >>911
    文字参照のとこかね?
    ゼロ幅空白は ​
    915 : Name_Not - 2014/03/10(月) 13:49:41.77 ID:??? (+55,+27,-13)
    ユニコード記述で出来ました
    ありがとうございました
    916 : Name_Not - 2014/03/10(月) 18:25:33.11 ID:??? (+53,-30,-196)
    for in による オブジェクトプロパティーのリストアップについて
    ブラウザやnodejsだと、、

    var o = {w:10, h:20, func:function(){console.log(this.h);}}
    for(var x in o){ console.log(x +":"+ typeof o[x] + " = " + o[x]); }
    --->
    w:number = 10
    h:number = 20
    func:function = function (){console.log(this.h);}

    このような結果がえられますが、var o = Math だと何も表示されません。
    Mathは "グローバル" な "組み込み" オブジェクトだから特別なんでしょうか?
    それとも for in ではリストアップできないように指定する方法があるのでしょうか?
    917 : Name_Not - 2014/03/10(月) 18:49:16.98 ID:??? (+75,+30,+0)
    918 : Name_Not - 2014/03/10(月) 19:04:11.36 ID:??? (+7,-30,-37)
    Object.getOwnPropertyNames(Math).forEach(function(i){
     console.log(i + ':' + Math[i]);
    });
    919 : Name_Not - 2014/03/10(月) 19:19:47.46 ID:??? (+15,-30,-77)
    Mathプロパティのリストアップ の件、ありがとうございます。
    >>917
    firefox26 では for each in... 使ってもできませんでした。
    nodejsでは for each in... が無いので、とりあえず foreach モジュール、 object-foreach モジュールをインストールして試してみましたがダメでした。

    >>918
    これだと firefox, nodejs どちらもいけました。

    結果オーライでもいいのですが、やはりMathオブジェクトは特別なのかが気になります。
    920 : Name_Not - 2014/03/10(月) 19:29:51.45 ID:??? (+8,-30,-230)
    >>916
    列挙されるかどうかはenumerable属性次第

    属性を指定してプロパティを定義したい場合はObject.create, Object.defineProperties, Object.definePropertyを使う
    var o = Object.defineProperties({}, {
     x: { value: 10, configurable: true, enumerable: false, writable: true },
     y: { value: 20, configurable: true, enumerable: false, writable: true },
    });

    逆にプロパティの属性を知りたい場合はObject.getOwnPropertyDescriptorを使う
    console.dir(Object.getOwnPropertyDescriptor(Math, 'sin'));
    921 : Name_Not - 2014/03/10(月) 19:34:58.76 ID:??? (+5,-30,-76)
    >>919
    for-in Statement は [[Enumerable]] === true のプロパティ名のみを返す
    http://www.ecma-international.org/ecma-262/5.1/#sec-12.6.4
    Object.getOwnPropertyNames は [[Enumerable]] === false なプロパティも含めて返す
    http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.4
    922 : Name_Not - 2014/03/10(月) 19:47:09.88 ID:??? (+43,-30,-222)
    >>917は貼り間違えた
    ほんとはこっちを貼りたかった
    http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/for...in
    >説明
    >for...in ループは組み込みプロパティに対しては反復しません。
    >これらには、String の indexOf メソッドや Object の
    >toString メソッドといった、オブジェクトの全組み込みメソッドも含まれます。
    >しかしながら、このループは (組み込みプロパティを上書きしたものも含む)
    >すべてのユーザ定義プロパティに対して反復します。

    enumerable属性は知らなかった 英語版の方には載ってるんだけどね
    ちゃんと英語版参照しないとダメね・・・
    923 : Name_Not - 2014/03/10(月) 19:56:05.44 ID:??? (-1,-29,-26)
    日本語版も英語版も最終更新日は13/5/28だな
    おいKeiichi!
    924 : Name_Not - 2014/03/10(月) 20:00:55.86 ID:??? (+57,+23,-15)
    >>922
    MDNもいいけど、英語読むならESが一番だよ
    MDN英語版は日本語版より新しいけど、情報が古かったり間違っていた事も多々あった
    925 : Name_Not - 2014/03/10(月) 20:11:25.92 ID:??? (+64,+29,-27)
    そうなのか 了解
    次からは日本語MDN読んで大雑把に理解してから(英語苦手)ES読むようにする
    926 : Name_Not - 2014/03/10(月) 20:29:08.90 ID:??? (+36,-30,-104)
    >>925
    日本語あたるなら ES3 も悪くないよ
    [[Enumerable]] は ES5 から生まれた属性だから ES5 も読む必要があるけど、その他の共通処理は日本語で理解できる
    ES3英文とES5英文を比較すれば差分もわかる
    http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/12_Statements.html#section-12.6.4
    http://bclary.com/2004/11/07/#a-12.6.4
    927 : 916 - 2014/03/10(月) 21:16:35.60 ID:??? (+56,+28,+0)
    みなさんありがとうございます。勉強になりました。
    928 : Name_Not - 2014/03/10(月) 21:46:32.00 ID:??? (+45,+17,+0)
    >>926
    助かります
    929 : Name_Not - 2014/03/11(火) 03:40:23.85 ID:??? (-1,-29,-31)
    文字列が表示されたdiv内をクリックした時
    クリックされた、あるいはクリック位置直近の文字を取得するにはどうしたらいいですか?
    930 : Name_Not - 2014/03/11(火) 04:23:03.17 ID:??? (+7,-29,-12)
    文字列が表示されたdiv要素にクリックイベントハンドラを登録する
    931 : Name_Not - 2014/03/11(火) 18:15:09.53 ID:??? (+160,+29,-6)
    連想配列と二次元配列は一緒ってことでいいんでしょうか?
    932 : Name_Not - 2014/03/11(火) 18:16:29.87 ID:??? (+62,+27,+0)
    >>931
    まったく違う。
    933 : Name_Not - 2014/03/11(火) 19:06:43.59 ID:??? (+63,+24,+0)
    >>931
    まったく同じ。
    934 : 931 - 2014/03/11(火) 19:11:25.61 ID:??? (+74,+18,-1)
    どっちだよw
    935 : Name_Not - 2014/03/11(火) 19:33:21.73 ID:??? (+53,-30,-46)
    var a = document.createElement('a');
    a.setAttribute('href','http://google.com/');
    a.click();

    としたらページ移動する環境としない環境があるのですが
    どちらが本来あるべき動作なんでしょうか
    936 : Name_Not - 2014/03/11(火) 20:00:46.81 ID:??? (+73,+29,-57)
    >>931->>934
    ここは多数決で決めよう。
    俺は全く同じに一票だから今のところ全く違う1全く同じ2だな。

    >>935
    こっちは両方共本来あるべき動作に一票いれよう。
    937 : Name_Not - 2014/03/11(火) 20:05:36.53 ID:??? (-1,-29,-6)
    多数決? No Thank You(笑)
    938 : 935 - 2014/03/11(火) 20:27:52.87 ID:??? (-1,-29,-76)
    自己解決しました
    要素がclickプロパティを持つかどうかはHTML5の実装で異なり
    dispatchEventを使うのが確実だとわかりました
    939 : Name_Not - 2014/03/11(火) 21:12:43.15 ID:??? (+57,+29,-2)
    クロスドメイン制約みたいな話かと思った
    940 : Name_Not - 2014/03/11(火) 22:56:42.08 ID:??? (+48,-18,-10)
    >>930
    div内のどの文字がクリックされたかを知りたいのです
    たとえば一文字ずつspanで区切ってidを付けたら可能ですが
    それはやりすぎだと思いますし
    941 : Name_Not - 2014/03/11(火) 23:07:21.53 ID:??? (+0,-29,-15)
    >>940
    event.target では不満?
    942 : Name_Not - 2014/03/11(火) 23:37:35.86 ID:??? (+51,+28,-15)
    idをつける必要はないと思うが
    943 : Name_Not - 2014/03/12(水) 00:05:43.36 ID:??? (+64,+29,-7)
    >>940
    とりあえずjsbinとかでサンプル書いてみてよ
    サンプルないとここの人たちも大したアドバイスできないと思うぞ
    944 : Name_Not - 2014/03/12(水) 01:03:54.42 ID:??? (+19,-30,-135)
    質問です。
    エスケープシーケンスのような形で、
    「@@」→「@」、「@a」→「A」という文字列置換を行おうと考えています。
    「@@a」というような文字列も正しく「@a」と置換させるため、
    text.replace( /@@/g, '@b' ).replace( /@a/g, 'A' ).replace( /@b/g, '@' );
    のように、「@@」を一時的に「@b」というような文字列において置換させています。
    しかし、元から「@b」と書かれていた部分も置換されてしまい、スマートじゃないように思えます。
    「@b」のような一時的な文字列を用いない、もっときれいな書き方はありますか?
    945 : Name_Not - 2014/03/12(水) 01:34:46.57 ID:??? (+45,-30,-48)
    先に「@a」→「A」に変換するのはどうだろうか
    その際に「@@a」→「@A」に変換されないように
    @aの前が@でなければ変換するようにする
    text.replace(/[^@]@a/g, 'A').replace(/@@/g, '@');
    946 : Name_Not - 2014/03/12(水) 01:40:35.34 ID:??? (+79,-30,-20)
    >>944 '@@@@@a'.replace(/@(.)/g, function (s, c) { return c === '@' ? '@' : c === 'a' ? 'A' : c; }); //=> '@@A'
    947 : Name_Not - 2014/03/12(水) 02:15:07.84 ID:??? (+1,-27,+1)
    >>945はダメだ a@aがAになる ごめん
    948 : 944 - 2014/03/12(水) 02:28:10.45 ID:??? (+72,+29,-59)
    返信ありがとうございます。
    >>946
    replaceの第二引数に関数が使えるとは、知りませんでした。
    とてもスマートな書き方だと思います。ありがとうございました。
    >>945,947
    他にも、「@@@a」や「@a@a」、文頭の「@a」等が置換できないようです。
    複数回の置換操作でそれらにもなんとか対応できましたが、>>946の方がスッキリ書けそうです。
    皆様、どうもありがとうございました。
    949 : Name_Not - 2014/03/13(木) 10:58:16.53 ID:??? (+7,-30,-73)
    タッチデバイスではmousedownの代わりにpointerdownとかmspointerdownとかtouchdown
    対応せざるを得ないんだろうけどclickの代わりはどれになるんだろう
    マウスイベントとタッチイベントの互換性ってどうなってるんだろうか
    950 : Name_Not - 2014/03/13(木) 15:09:07.75 ID:??? (+99,+29,-63)
    http://d.hatena.ne.jp/language_and_engineering/20100111/p1
    >HTMLの地の文の中に処理そのものをベタで書いたり,
    >jsファイルの中に関数をそのまま並べて書く,というコーディングスタイルだ。

    今の自分がまさに関数をずらっと並べている書き方なのですが
    これはどういう理由でよくないのでしょうか
    また一般的にはどういう書き方をするものなんでしょうか
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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