はしばみあきら blog

プログラミングアウトプットするブログ。202010スタート

【jQuery】要素を最上部に移動させる

今回はjsです

jsを知れば知るほどjQueryって便利なんだなぁとつくづく感じている所です

本題!

要素を最上部に移動させる

たった1行で実行できました

javascripts/channels/talk_room

$('.talk__friends--list').prepend($('.talk-room-' + data["talk_room_id"]));

ざっくり書くと

$('入れ物').prepend('追加したい要素')

で、追加したい要素を入れ物の一番上に表示させる感じです

もし、すでに追加したい要素がある場合は、すでに要素は消えて上部に追加されます
(removeとか使ってしまって永遠に消えたりしてました...)

実際の動きはこんな感じです

名前がdddの人とのトークが一番上になりました

ついでに、一番新しいトーク内容を表示させて、時間も一緒に出します

      # トークの追加があったトークルームを最上段に表示させる
      $('.talk__friends--list').prepend($('.talk-room-' + data["talk_room_id"]));
      # 内容を書き換える
      $('.talk-room-' + data["talk_room_id"]).find(
        $('#latest-talk').html('<span class="latest-talk-show__name-display--display">'+
                                                data["talk"]+
                                            '</span>')
      )
      # 時間も書き換える
      $('#data-time').html('<span id="data-time">'+
                              data["created_at"]+
                            '</span>')

ActionCableでchannelのreceived: 部分に書いてあるので、受け取った相手も同じ動きをしてくれます

あとは未読メッセージでカウントを表示とかさせればよりわかりやすくなりますね

またボチボチ更新していきます