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

    私的良スレ書庫

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

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

    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
    751 : Name_Not - 2011/07/15(金) 22:00:17.57 ID:??? (+11,+28,-14)
    >>750の優しさに泣いた・・・
    752 : Name_Not - 2011/07/15(金) 22:35:46.93 ID:??? (-29,-25,-26)
    onmouseイベントだとどう考えても遅いし
    スタイルシートで指定できたらそうしたいんだろう
    ただJavaScriptで指定してる以上・・・
    753 : Name_Not - 2011/07/15(金) 22:47:19.16 ID:??? (-12,-10,-6)
    JSで動的にスタイルシートを埋め込む。
    754 : Name_Not - 2011/07/15(金) 22:50:15.72 ID:??? (-27,-29,-22)
    >>752
    >onmouseイベントだとどう考えても遅いし
    それが体感できるほどの化石PCを使ってんの?
    755 : Name_Not - 2011/07/15(金) 22:56:09.77 ID:??? (+30,+29,-29)
    >>754
    いや例えば例だとaだったけど
    これがtdの各セルになると結構厳しいぞ
    自分がどうとかより訪問者第一に考えないと
    756 : Name_Not - 2011/07/15(金) 23:02:25.50 ID:??? (+26,+24,-5)
    >>755
    不特定の訪問者第一に考えるなら、tdにhoverなんて使えねえよ。
    757 : Name_Not - 2011/07/15(金) 23:15:04.08 ID:??? (+20,+27,-1)
    スタイルシートなら別に問題ない
    758 : Name_Not - 2011/07/15(金) 23:15:06.27 ID:??? (+31,+29,-62)
    >>755
    アホか>>754を書いた真意がまだ分からんのか
    つかtableの各セルとかそんなの>>746のどこにも書いてないし、そもそも質問した本人でもないのに
    横から「JavaScriptは重い」とか的外れなチャチャ入れんなよks
    759 : Name_Not - 2011/07/15(金) 23:17:10.89 ID:??? (+12,+24,+0)
    何こいつ
    761 : Name_Not - 2011/07/16(土) 01:33:47.82 ID:??? (-27,-30,-156)
    hoge.attachEvent('click', function(){alert(this)}, false)

    addEventListnerではちゃんとhogeオブジェクトを返してくれるのですが、
    attachEventではwindowが返ってきます。

    attachEventでもhogeを返すにはどうしたらいいですか?
    762 : 761 - 2011/07/16(土) 02:10:57.56 ID:??? (+27,+29,-21)
    すみません。自己解決しそうです。
    メモリリークの心配があるそうですが、クロージャーとやらを使ってなんとかなりそうです。
    763 : Name_Not - 2011/07/16(土) 04:02:05.53 ID:??? (-28,-30,-108)
    var outer3=function(){
    var x = 1;
    var jj=function (n){
    alert(x+n);
    return x = x +8+n;};
    return jj;};
    outer3()(2);//3
    outer3()(2);//3
    outer3()(2);//3
    var aaf=outer3();
    aaf(2);//3
    aaf(2);//13
    aaf(2);//23
    という挙動になりouter3()(2);ではxの値が保持されないのは
    何故ですか?
    764 : Name_Not - 2011/07/16(土) 04:44:03.81 ID:??? (-26,-30,-161)
    >>763
    >>684の人かな?
    「outer3()(2);」ではouter3関数をその都度実行しているから、
    xもその度に初期化されて値を保持できない

    「aaf(2);」でxの値が保持されているのは、
    変数としてのaafに、実行されたouter3関数の状態と共にjj関数が代入されて、
    その状態のxがaaf関数に対するレキシカル変数になっているから

    「outer3()(2);」で値を保持するなら、xをouter3関数に対するレキシカル変数にしないと
    具体的にはouter3関数外でxを変数宣言し、outer3関数内では代入だけに留めてみるとか
    765 : Name_Not - 2011/07/16(土) 05:02:50.80 ID:??? (+22,+27,+1)
    >>764
    ありがとうございました。よくわかりました。
    767 : Name_Not - 2011/07/16(土) 06:52:49.57 ID:??? (-24,-30,-155)
    >>766
    setIntervalの引数のところ、countdownの直後の丸括弧は要らないです

    関数名(関数を参照している識別子): countdown
    関数呼び出し: countdown()
    というのに注意してください
    例)
    setInterval(countdown, 1000);
    // countdownを呼ぶようにsetIntervalでタイマ設定
    // →OK 設定間隔で呼び出される(countdown() される)

    setInterval(countdown(), 1000);
    // まずcountdown()と呼び出して、その戻り値をsetIntervalでタイマ設定
    // →NG countdown自体は戻り値を持たないので動かない

    setInterval("countdown()", 1000);
    // 文字列に収められたコードをsetIntervalでタイマ設定
    // →OK 設定間隔で文字列内のコードが実行される(countdown() される)
    769 : Name_Not - 2011/07/16(土) 07:26:31.55 ID:??? (-25,+29,-11)
    >>767
    色々いじってたらカウント始まりました
    ありがとうございます。
    ただ数字が倍々に減っていくので、もうちょっと調べてみます
    ありがとうございました^^
    771 : Name_Not - 2011/07/16(土) 08:58:49.93 ID:i4Jg6kyq (-15,+29,-47)
    >>769
    たぶんデクリメントする処理が
    インターバルごとに追加されてる気がする

    こんなんでどうだろう
    http://jsbin.com/imaviy/3/edit

    例えばインターバル時間を1秒として
    10回処理を繰り返したときに経過する時間は10秒ではないことに注意
    774 : Name_Not - 2011/07/16(土) 09:41:20.73 ID:??? (+23,+21,-60)
    onMouseMoveで座標を変えてあげるだけだと画像をドラッグしようとしたとき
    ブラウザのデフォルト仕様?で画像データをドラッグする状態になってスムーズに移動しない状態になります。
    これを修正するにはどんな記述をすればいいのですか?画像ドラッグ時の動作を無効化?
    775 : Name_Not - 2011/07/16(土) 09:44:54.39 ID:dG9aa+zW (-14,+24,-1)
    >>774
    イベントキャンセルしていないじゃないの?
    776 : Name_Not - 2011/07/16(土) 09:45:38.17 ID:??? (-26,-30,-29)
    調べた結果、こんなページが見つかったんですが
    これを覚えれば>>774の課題は解消できますか?
    http://www2.ocn.ne.jp/~yoochan/decoration/JavaScript/DHTML16.htm
    777 : Name_Not - 2011/07/16(土) 09:48:00.16 ID:??? (+24,+29,-25)
    >>776
    全部コードを読んで試してくれ、ってこと?それぐらい自分で試して欲しい。
    >>775で解決しないの?
    779 : Name_Not - 2011/07/16(土) 09:58:36.48 ID:??? (+33,+29,-97)
    >>775
    return falseのことでしょうか?でも、これって該当の課題と関係ないような気がするのですが。
    実際の現象はここのサンプルを実行したときに画像をドラッグするときと同じで
    chromeで実行すると、青くなって移動するけど移動元は残っててマウスボタンを離したときにその場所に動く動作
    (アドレスバーに持っていけば画像を直接開ける状態)です。
    http://javascript.eweb-design.com/0806_dim.html

    http://javascript.eweb-design.com/sample/s0806_1.html
    780 : Name_Not - 2011/07/16(土) 10:09:45.72 ID:??? (+37,+29,-79)
    >>779
    Google Chrome なら event.preventDefault で解決すると思うけど。>>778
    「課題と関係ない」と自己判断しないでとりあえず試してみたら?
    ミスリードする人も中にはいるけど、間違いがあれば訂正する人が現れると思うよ。
    781 : Name_Not - 2011/07/16(土) 10:13:11.05 ID:??? (+33,+29,-17)
    回答者の脳みそが高度すぎてよくついていけなくなるな
    回答者の脳内で出来上がった答えを質問者が想像できないパターンがありそうだ
    782 : Name_Not - 2011/07/16(土) 10:16:29.80 ID:??? (+32,+29,-6)
    >>781
    ついていけない内容を質問すればアドバイスがもらえるんじゃないかな?
    785 : Name_Not - 2011/07/16(土) 10:24:59.63 ID:??? (-26,-30,-101)
    >>783
    そっちは
    <a id="nyan" onClick="return addimg('nyan');" href="img/nyan.jpg">img/</a>
    でaddimgからfalse返してるので今のところ問題ないです。
    今の課題は、addimgで追加したimgを結果としてはドラッグできるけど、ドラッグするときに>>779の状態に陥ります。
    >>780を受けて>>784してみましたが変化がありませんでした。
    789 : Name_Not - 2011/07/16(土) 10:41:18.61 ID:??? (-28,-30,-99)
    >>787
    >>778です。
    自ソースで
    document.getElementById("nyanko").addEventListener("mousedown", dragSetIn, false);
    から呼び出しているfunction dragSetIn(evt){の先頭に
    evt.preventDefault();を差し込んだらうまくいきました。
    ありがとうございます。
    791 : Name_Not - 2011/07/16(土) 12:30:09.71 ID:??? (-28,-29,-35)
    stopPropagation は使ったことないなあ。有効な使い道が思い浮かばない。
    792 : Name_Not - 2011/07/16(土) 12:43:59.96 ID:??? (-25,-30,-168)
    if (event.preventDefault) {
     event.preventDefault();
    } else if(event.returnValue){
     event.returnValue();
    }else{
     return false;
    }
    こうしておけば良い感じ?
    793 : Name_Not - 2011/07/16(土) 12:59:03.55 ID:??? (+23,+29,-24)
    >>791
    複数のユーザがイベント仕掛けるときに変な動きしないためとか
    htmlならあんまり使わないかもね

    >>792
    どうしてreturnValueを呼ぼうと思ったんだ
    794 : Name_Not - 2011/07/16(土) 13:04:03.82 ID:??? (-28,-30,+0)
    <div>
    <a id="x001" href="#">x001</a>
    <a id="x002" href="#">x002</a>
    <a id="x003" href="#">x003</a>
    </div>
    とリンクを並べたときこれらのリンクのみクリックを検知したい場合、もっとシンプルでスマートな方法はありませんか?
    現状は以下のように全パターンセットして同じ関数に飛ばして飛ばした先でevt.targetで拾っています。
    document.getElementById("x001").addEventListener("click", clickon, false);
    document.getElementById("x002").addEventListener("click", clickon, false);
    document.getElementById("x003").addEventListener("click", clickon, false);
    798 : think49 - 2011/07/16(土) 14:01:15.69 ID:??? (-27,-30,-276)
    すみません、嘘つきました。
    if (event.returnValue) は event.returnValue === false の状況で正しく働きません…。

    if (typeof event.preventDefault === 'function') { // [[Call]] を持つnativeオブジェクトなら
     event.preventDefault();
    } else if ('returnValue' in event) { // returnValueプロパティを持っているなら
     event.returnValue = event.type === 'mouseover';
    } else {
     return event.type === 'mouseover';
    }
    799 : Name_Not - 2011/07/16(土) 14:10:16.44 ID:??? (-28,-30,-70)
    IEで
    if(window.attachEvent){は通るのに
    window.attachEventで関数は実行されないの?
    document.body.attachEventは動くけど……
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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