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

    私的良スレ書庫

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

    元スレJavaScript ライブラリ総合質問所 vol.4

    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
    251 : Name_Not - 2014/08/06(水) 23:01:29.59 ID:???.net (+37,-30,-73)
    >>246
    <script>
    $(function() {
      $("button").click(function(){
        $("textarea").val(function() {
          return $('.test input:checked + span').last().html();
        });
      });
    });
    </script>
    252 : Name_Not - 2014/08/06(水) 23:10:24.74 ID:???.net (-5,-30,-51)
    >>248
    $(function() {
      $('a.target').click(function() { // 'a.on, a.off' 等でも良い
        $(this).toggleClass("on off");
      });
    });

    <a class="target on">クリックするたびに背景色変更</a>
    253 : 249 - 2014/08/06(水) 23:18:43.24 ID:???.net (+5,-30,-91)
    >>246
    ごめん。間違えてた。

    訂正
    <script>
    $(function() {
      $("button").click(function(){
        $("textarea").val(function() {
          return $('.test input:checked + span').map(function() {
            return $(this).html();
          }).get().join('');
        });
      })
    });
    </script>
    254 : Name_Not - 2014/08/06(水) 23:35:32.16 ID:???.net (+97,+28,-4)
    >>251-251
    解決済みの質問に回答しなくてもいいのでは
    255 : Name_Not - 2014/08/06(水) 23:47:31.33 ID:???.net (+82,+30,-112)
    >>254
    解決したと書いてあるだけで、そのコードが載っていない

    それは、質問をするだけして自己解決しました。といって
    去っていくやからと同じで、他の人の参考にならない。

    またプロ品質の仕事としては、かろうじて動いていたとしても
    無駄があるコードは、品質が低くコードレビューで弾かれる。
    つまり未完成のコードと同じで、完成してない(解決済みではない)ということ。
    256 : Name_Not - 2014/08/07(木) 00:25:57.59 ID:???.net (+3,-30,-134)
    こっちの方が一行少なくてわかりやすいか。

    $(function() {
      $("button").click(function(){
        var text = $('.test input:checked + span').map(function() {
          return $(this).html();
        }).get().join('');
        $("textarea").val(text);
      })
    });

    通常、valでfuncitonを引数にした時、thisを参照するんだけど
    でも今回はthisを参照しないから、分けて書いたほうが良さそう。
    257 : Name_Not - 2014/08/07(木) 00:37:38.61 ID:???.net (+3,-30,-193)
    >     var text = $('.test input:checked + span').map(function() {
    >       return $(this).html();
    >     }).get().join('');

    これを一行で書く方法ないかな? 時々こういうコード書くんだよね。

    .get().join('')は次の行に移動できるから無視するとして。

    仮にjQuery プラグインを作ったとしたら、こんな感じでjQueryオブジェクトの
    配列から、htmlメソッドを呼び出した結果を配列で返すみたいな。

    var texts = $('.test input:checked + span').retrieve('html');

    ないよなぁ。
    258 : Name_Not - 2014/08/07(木) 21:57:10.49 ID:???.net (+8,-30,-300)
    >>255
    プロを名乗るならまず、設計上の問題点を指摘すべきだと思うが

    >>248
    レイアウトの為にbr要素を使うべきではない
    input要素のname属性は同じformコントロール下であればユニークであるべきだ
    span要素はlabel要素に置き換わるべきだ(そうすればinput要素との対応関係も明確になる)
    $("button").click() は全てのbutton要素にイベントを定義してしまう
    $("textarea").val() は全てのtextarea要素を書き換えてしまう
    そもそも、同じフォームコントロール下におけばclass="test" は不要だ(form内の全 input[type=checkbox] を対象にすればよい)

    >>248,250
    on, offの2パターンしかないのに on, off を付け替えるのは明らかに無駄だ
    onの有無で十分に判定できるはずだ
    2つのclass名を使い分けるのは4パターンのUIが必要な時に限定される

    また、そもそも論としてa要素でこれをマークアップするのもおかしい
    UIとしてはcheckboxに相当するのだから <input type="checkbox"> でマークアップしてCSSで装飾するのが妥当だろう
    <input type="checkbox"> のデフォルトUIが嫌なら WAI-ARIA を使えば良い
    ようするにclass属性を使う必要は全くない
    http://www.hitachi.co.jp/universaldesign/ria/ajax/wai-aria/wd_20090224/index.html#button
    http://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role
    259 : Name_Not - 2014/08/07(木) 22:11:53.69 ID:???.net (+57,+29,-7)
    解決済みの質問に回答するやつ同士勝手にしてくれ
    260 : Name_Not - 2014/08/07(木) 22:13:10.39 ID:???.net (+9,-18,-7)
    JavaScriptのスレで指摘点が
    HTMLとはね(苦笑)
    261 : Name_Not - 2014/08/07(木) 22:26:54.28 ID:???.net (+8,-29,-33)
    >>258
    > input要素のname属性は同じformコントロール下であればユニークであるべきだ
    違うだろ。radioは同じnameを作らないといけない。
    ユニークであるべきなどとは仕様のどこにも書いてない。
    262 : Name_Not - 2014/08/07(木) 22:28:29.01 ID:???.net (+2,-29,-34)
    getElementById が単数形で
    getElementsByName が複数形なのには
    理由があるんだよ。
    263 : Name_Not - 2014/08/08(金) 00:20:35.86 ID:???.net (+0,-29,-14)
    >>261
    radioではなく、checkboxだぞ
    264 : Name_Not - 2014/08/08(金) 00:27:01.14 ID:???.net (-1,-29,-14)
    >>262
    同じname属性値を持つことは文法上制限されてない
    が、checkboxでそれをやる意義があるのか?
    265 : Name_Not - 2014/08/08(金) 01:05:49.96 ID:???.net (-2,-30,-43)
    はぁ?

    複数チェックしたら、name=1&name=2となって
    サーバー側では、name = [1,2] として配列で取得できるじゃん。

    これはmultipleなselectで複数選んだのと同じ。
    269 : Name_Not - 2014/08/14(木) 19:21:30.46 ID:???.net (+34,-30,-43)
    エラーはでてないん?

    chrome.tabs.executeScript() のcallbackで次のchrome.tabs.executeScript()
    を実行してみてはどうだろう
    270 : Name_Not - 2014/08/14(木) 22:42:37.16 ID:???.net (+67,+29,-24)
    >>269
    できました!ありがとうございます。
    ここに書いたコードでもエラーは出てなくて、もしコールバックしてないから動かないなら「$が定義されていません」みたいなエラーが出るはずだと思ってスルーしてました。
    271 : Name_Not - 2014/08/20(水) 03:25:46.76 ID:???.net (+48,+30,+0)
    273 : Name_Not - 2014/08/26(火) 17:46:26.31 ID:???.net (+56,+28,-41)
    jqueryで式の頭に!!をつけるのはどういう意図があるのですか?
    手っ取り早くbooleanに変換するためでしょうか?
    274 : Name_Not - 2014/08/26(火) 17:50:45.57 ID:???.net (+3,-19,-26)
    jqueryのソースです
    275 : Name_Not - 2014/08/26(火) 18:49:27.85 ID:???.net (-6,-29,+0)
    ( ゚Д゚)y─┛~~
    276 : Name_Not - 2014/08/27(水) 14:02:34.91 ID:???.net (-6,-30,-83)
    >>272
    > 該当のタブが非アクティブの間はこの点滅アニメーションを止めておきたいのですがどうすればいいのでしょうか?

    その発想が間違ってるね。

    setIntervalとsetTimeoutを併用しているからそういう問題が起きるんだよ。
    どっちか一つを使うようにすれば自然に問題は解決する。

    あとこれは冗長
    $(document).ready(function(){

    jQueyrで推奨されているやり方はこっち
    $(function(){
    277 : Name_Not - 2014/08/27(水) 16:10:47.10 ID:???.net (-1,-29,-6)
    誰かdhtmlxscheduler使った事ある人いませんかね
    278 : Name_Not - 2014/08/31(日) 12:21:47.51 ID:???.net (+64,+29,-51)
    jQueryでスマホサイト等に
    クリックで開閉するよくあるヤツ。
    「+」「-」マークを切り替える場合、簡潔なソースはどんな感じになるでしょうか?
    279 : Name_Not - 2014/08/31(日) 14:05:08.74 ID:???.net (+41,+13,-2)
    知らんがな。
    280 : Name_Not - 2014/09/01(月) 01:00:38.29 ID:???.net (+50,+17,-28)
    タブ切り替えについて質問。

    ページ表示の際に開くタブを指定は可能でしょうか?

    例えば飛び元ページからURLにパラメーターを付けてリンクさせ、
    それを取得して開くタブを切り替えるなど・・。

    どうやっていいか全くわかんないけど
    281 : Name_Not - 2014/09/01(月) 03:21:30.64 ID:???.net (+47,-29,-80)
    >>278
    完結なコードはjQueryどころか
    JavaScriptコード一切ないよ。

    +-マークを切り替えるというのは、
    抽象化して考えると、チェックのON・OFFで表せる。
    つまりチェックボックスだ。

    あとはCSSで、checkされたボックスの配下や次にある
    要素を表示したりしなかったりするだけ。
    282 : 279 - 2014/09/01(月) 03:25:02.81 ID:???.net (+40,-30,-124)
    まあ、レイアウトや対応ブラウザのCSS対応の制限で
    実装しにくい時もあるが、そういう時は

    $('input[type=checkbox]').on('click', function() {
     $(チェックボックスに対応するブロックのセレクタ).toggleClass(クラス名, this.checked);
    });

    まあ、これだけだろうね。

    +-マークについてはCSSで実装できないブラウザはないから不要だろうな。
    283 : Name_Not - 2014/09/03(水) 09:53:20.60 ID:???.net (+9,-30,-153)
    <div class="test">
    <button>button</button>
    <div class="text">
    text
    </div>
    </div>

    <div class="test">
    <button>button</button>
    <div class="text">
    text
    </div>
    </div>

    ボタンをクリックしたらtext部分ににタグを挿入したいのですが、やり方がさっぱりわかりません
    thisを使った場合どうやってdivタグを特定すればいいのでしょうか?
    284 : Name_Not - 2014/09/03(水) 12:47:11.95 ID:???.net (+30,-30,-87)
    >>283
    buttonからdivタグを特定するにもいろいろ道があるよね
    たとえば親の要素以下のdivなら $(this).parent().find('div') だけど
    divのようなタグ名ではなくclassで指定したいとか、buttonの隣にあるdivがいいとか
    違った道もある(HTMLがもう二度と変更されることがないなら気にする必要はないけれど)
    その辺を決めてからhttp://api.jquery.com/category/traversing/ をながめてみればいいんではないかな
    285 : Name_Not - 2014/09/03(水) 17:58:38.56 ID:???.net (+45,+18,+2)
    >>284
    ありがとうございます
    286 : Name_Not - 2014/09/03(水) 22:51:46.67 ID:???.net (+117,+28,-29)
    >>281,>>282
    ありがとう
    チェックボックスの発想はなかった。。
    クラスをトグルするってことは、背景画像で+と-の画像を切り替えってことか。
    スマホだと背景画像の解像度とかサイズとか面倒じゃない?
    287 : Name_Not - 2014/09/04(木) 01:00:03.45 ID:???.net (+96,-30,-102)
    >>286
    アコーディオンでcheckboxってあまり見ないような・・・?
    普通に見出しとかdivとかをクリックさせて、アコーディオンさせるとこをslideToggleで開閉が多い気がするけど。
    +-は画像だとめんどいのでWEBフォント使ってCSSでbeforeなりafterなりに設定するのがラクなきが最近はしてるけどどうなんじゃろ。
    ■好きなアイコンでWebフォントを作るサービス「IcoMoon」が熱い! - iLOG
    http://i-i-news.com/2013/08/icon-webfont7/
    288 : Name_Not - 2014/09/04(木) 20:15:35.98 ID:???.net (+86,+29,-67)
    >>286
    Media Queries
    というか、ツリー表示が有用なのはある程度大きな画面サイズを持つタブレット以上であってスマホで生きるとは思わないけどね

    >>287
    見るか見ないかじゃなくて、論理構造として正しいかという話をしているんだと思うけど
    多数派の手法が必ずしも良いとは限らない
    289 : Name_Not - 2014/09/04(木) 21:07:08.98 ID:???.net (+18,-30,+0)
    >>286
    こんな感じ?
    css:
    input[type="checkbox"].toggle{
    font-size: 100%;
    width: 1em;
    margin: 0;
    padding: 0;
    opacity: 0;
    }
    input[type="checkbox"].toggle + label:before{
    cursor: pointer;
    display: inline-block;
    content: "+";
    margin-left: -1em;
    }
    input[type="checkbox"].toggle:checked + label:before{
    content: "-";
    }
    .toggle ~ .close, .toggle:checked ~ .open {
    display: none;
    }
    .toggle ~ .open, .toggle:checked ~ .close {
    display: block;
    }

    html:
    <input class="toggle" id="toggle-one" type="checkbox" />
    <label for="toggle-one"></label><div class="open">opened contents</div><div class="close">closed contents</div>
    290 : Name_Not - 2014/09/04(木) 21:19:53.45 ID:???.net (+111,+29,-66)
    >>287
    > アコーディオンでcheckboxってあまり見ないような・・・?

    念の為に言っておくと、完結なコードと言われたので
    最小限のコードを言ったまでで、文書構造で言えば
    適切ではないなとは思ってる。
    291 : Name_Not - 2014/09/04(木) 21:23:47.63 ID:???.net (+52,+29,-13)
    面倒くさい奴だな
    292 : Name_Not - 2014/09/04(木) 22:51:29.33 ID:???.net (+14,-26,-16)
    >>287,287
    ありがとう。
    どちらも参考になった。

    before疑似要素使えば済む話だった。orz
    293 : Name_Not - 2014/09/05(金) 16:43:50.36 ID:???.net (+9,-30,-208)
    初歩的な質問で申し訳ないのですが
    たとえば.buttonを押すと.boxの高さが50pxずつ増えるという動きを実装したとき、MAXが400pxまでと
    したい場合(.boxの高さが400pxまで増えたら.buttonを消す)はどういう風に書けばいいですか?


    $('.button').click(
    function(){
    $('.box').stop().animate({'height':'+=50px'},200);


    ここまではともかく、このあとの
    「boxの高さが400px以上に達した場合、buttonの表示を消す」という部分の書き方がわかりません・・・
    294 : Name_Not - 2014/09/05(金) 23:28:27.51 ID:???.net (+28,-30,-174)
    >>293

    とりあえずで。

    $('.button').click(function (){
    $('.box').stop().animate({'height':'+=50px'},200);
    var bH = $('.box').height();
    $('.box').after(bH);//不要

    if(bH > 150){
    $('.button').hide();
    }
    });
    295 : Name_Not - 2014/09/07(日) 00:41:50.30 ID:???.net (+52,+29,-4)
    解決したなら礼くらい言えよな
    296 : Name_Not - 2014/09/07(日) 01:30:31.24 ID:???.net (+0,+0,+0)
              _ , ,- -v- - 、 _
            /::::::::::::::::::::::::::::::::::::::::\
           /::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
          .(::(:::(::::/ ̄ ̄ ̄ ̄\::::::):::)::)
          (::(:::(:::)/・\  /・\(:::):::)::)
          .(::(:::(:::)  ̄ ̄    ̄ ̄ (:::):::)::)
          (::(:::(:::)   (||||人||||)  .(:::):::)::)   反省してまーす(チッ、うっせーな)
         .(::(:::(;;;)    \   |  .(;;;):::)::) 
          (::(:::(::::\    \_| /::::):::)::)
          (::/ ̄| ̄|\ ||||||| /| ̄| ̄\::)
          |    .〉 |人\_/入| 〈   |
          |  | .|  |  ヽ_/.  |  | |  |
          |  | .|  |  .|__/.  |  | |  |
          |  | ヽ |  ./ ヽ  | / |  |
          |  |  ヽ|  .|  |  |/  |  |
          |  |.   |  |  |  |   |  |
          |_|___./  ヽ_./   ヽ__|_|
          .(/:::::::::\ ___|___ /:::::::::\)
          |::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
          .|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|
           |:::::::::::::::::::::::/ ̄ヽ::::::::::::::::::::::|
    297 : Name_Not - 2014/09/07(日) 15:55:36.86 ID:???.net (+40,+22,-2)
    例言えとかww
    298 : Name_Not - 2014/09/07(日) 19:08:56.87 ID:???.net (+24,+6,-1)
    むしろ金払えw
    299 : Name_Not - 2014/09/08(月) 05:12:44.42 ID:???.net (+4,-30,-39)
    $("p").prepend("<b>").append("</b>");

    $("p").before("<b>").after("</b>");

    この二つが反映されない理由はなんですか?
    反映させる方法はありますか?
    300 : Name_Not - 2014/09/08(月) 06:29:49.22 ID:???.net (+3,-30,+0)
    <script type="text/javascript">
    function Display(no){
    var name = document.getElementById("name").value;
    var num=0;
    if(name.length < 2){
    alert("名前は2字以上でお願いしますだ。")
    return false;
    }else{
    if(num ==0){
    document.getElementById("SW1").style.display = "none";
    document.getElementById("SW2").style.display = "block";
    }
    }
    </script>
    <body>
    <div id="SW1">
    <p>これはSW1のエリアです。上記SW2をクリックすると消えます。</p>
    <form onsubmit="return _submit();">
    名前:<input type="text" id="name" name="name" value=""><br>
    <input type="submit" value="送信" onclick="Display('no1')"><br>
    </div>
    <div id="SW2" style="display:none;">
    <p>これはSW2のエリアです。上記SW1をクリックすると消えます。</p>
    <p>あなたの名前は<script type="text/javascript">+ name + </script>です。</p>
    </div>
    ボタンを押したら<div id=SW2>の画面に切り替わるようにしたいです。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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