2017-10-05 8 views
0

ajax呼び出しから値を取得したテーブルを作成し、それぞれにdata-id属性のアンカータグがあります。jQuery - アンカータグをオンクリックすると、div要素が動的に作成され、強調表示されます。

また、同じ値で動的にタイムラインビュー(デフォルトでは非表示)が作成されており、スクロールビューがあります(1000イベントがあるため)。

ユーザーがアンカータグをクリックすると、タイムラインで特定のliエレメントに移動してテーブルを非表示にすることができます。

function create_table(data) { 
 
    var tr = $('<tr>'); 
 
    $.each(data, function(idx, ele) { 
 
     tr.append("<<td><p><a class='details' data-id='" + data['id'] + "href=" + data['link'] + "> Link </a></p></td>") 
 
    } 
 
    $('tbody').append(tr); 
 
    } 
 

 
    function create_time(data) { 
 
    var ul = $("<ul>"); 
 
    $.each(data, function(idx, ele) { 
 
     ul.append("<li id=" + data['id'] + "><div>" + 
 
      data['player_name'] + "</div></li>"); 
 
     } 
 
     $(".vertical-timeline").append(ul) 
 
    } 
 

 
    $("a.details").on("click", function(e) { 
 
     e.preventDefault(); 
 
     $(".player_div").hide(); 
 
     $(".player_timeline").show(); 
 

 
     // MOVE TO PARTICULAR LI 
 

 
    }); 
 

 
    CSS 
 
     .player_timeline { 
 
     height: 700 px; 
 
     margin - bottom: 100 px; 
 
     } 
 

 
     .vertical - timeline { 
 
     overflow - y: scroll; 
 
     height: 500 px; 
 
     }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<section class="player-div"> 
 
    <table class="table table-responsive"> 
 
    <tbody> 
 

 
    </tbody> 
 
    </table> 
 
</section <section class="player_timeline" style="display:none;"> 
 
<div class="vertical-timeline"> 
 
</div> 
 
</section>

+0

あなたのコードがないと、正しい答えを提供することが非常に難しくなる可能性があります。 –

+0

申し訳ありませんコードを追加する –

+0

@RinsenSあなたは '$(document).on(" click "、" a.details "、function(e){'? –

答えて

1

あなたはjQueryのを使用している、あなたはそれがあなたのために働くなら、私を知ってみましょう。この

$("a.details").on("click", function(e){ 
    e.preventDefault(); 
    $(".player_div").hide(); 
    $(".player_timeline").show(); 

    $('html, body').animate({ 
     scrollTop: $(".player_timeline").offset().top 
    }, 2000); 
    $(".player_timeline").animate({ 
     scrollTop: $('li to scroll').offset().top 
    }, 2000); 
}); 

のようなイベントを添付することができますと仮定。

+0

タイムライン全体が独自のスクロールビューになっているため、その要素には到達できません。 –

+0

次に、2つめのスクロールを実行する必要があります(最初は2番目のスクロールビューの親に、次に別のスクロールがビュー内にあります)。しかし、私はちょうどアイデアを与えていました – Tapas

+0

はい、解決策を見つけることができず、あなたの考えにも感謝しています! –

0
$("a.details").on("click", function(e){ 
e.preventDefault(); 
$(".player_div").hide(); 
$(".player_timeline").show(); 
var id = $(this).attr("data-id"); 
$('html,body').animate({ scrollTop: $("li #" + id).offset().top - 1000 }, 'slow'); 
}); 

希望するコードをお手伝いします。

+0

申し訳ありませんが動作しませんでした:( –

関連する問題