2016-07-07 7 views
0

私は問題を引き起こしているページのタブを持っています。私はそれがjsコード内にあると思う。場合によってはタブをダブルクリックしなければならないこともあります。タブをダブルクリックしてタブの内容を取得する必要があります

これはRailsでHAMLを使用していますが、これはあまりよく知られていません。私は元のコードも書きませんでした。私はプロジェクトを引き継いでいます。ここで

はコードです: HAML

#myTabs 
%ul.tab-buttons.tab-buttons--boxed.tab-buttons--left.js-tabs.nav-tabs 
    %li.active.tab-button 
    %a#tab1.tab-button-link.active{"data-toggle" => "tab", "data-projects" => "not_archived"} Current Projects 
    %li.tab-button 
    %a#tab2.tab-button-link{"data-toggle" => "tab", "data-projects" => "archived"} Archived Projects 

.tab-content 
#tab1C.container 
    %ul.list-project 
    = render @projects 
#tab2C.container 
    %ul.list-project 

JS

$('.js-tabs li a:not(:first)').addClass('inactive'); 
    $('.container').hide(); 
    $('.container:first').show(); 

    $('.js-tabs li a').click(function(){ 
    var that = this; 
    var t = $(that).attr('id'); 
    $.get("/projects", {projects: $(that).data("projects")}, function(){},'json') 
     .done(function(data){ 
     var projects = data.projects; 
     if($(that).hasClass('inactive')){ 
      $(that).removeClass('inactive'); 
      $(that).addClass('active'); 
      $('#'+t+'C .list-project').html(projects); 
      $('.container').hide(); 
      $('#'+ t + 'C').fadeIn('slow'); 
     } else { 
      $(that).removeClass('active'); 
      $(that).addClass('inactive'); 
      $('#'+t+'C .list-project').html(projects); 
      $('.container').hide(); 
      $('#'+ t + 'C').fadein('slow'); 
     }; 
     $('.open-popup-link').magnificPopup(magnificPopupOptionsPermissionEmail); 
     }) 
    }); 

私はcodepenでコードを表示しようとしたが、それは正確に表示されていません。 Codepen

答えて

1

ページを入力したばかりの場合はダブルクリックする必要がありますが、ページを更新する場合は1回クリックする必要がありますか?

もしそうなら、ターボロードが問題になるかもしれません。一般的な修正点は次のとおりです。

var ready; 
ready = function() { 
    // add your functions and calls here 
} 
$(document).ready(ready); 
$(document).on('page:load', ready); 
+0

残念ながら、ページロードだけではありません。 1回のクリックでタブが表示され、2回目のクリックでコンテンツが表示されるように見えます。 – LaFrish

+0

いくつかのブラウザでもう1つ問題があったのは、コンテンツを同時に読み込もうとすると、時にはうまくいきません。私は時々、すべてが正しく動くように10ミリ秒の遅延を加えなければならなかった。詳細はこちらをご覧ください:http://stackoverflow.com/questions/17883692/how-to-set-time-delay-in-javascript – Okomikeruko

関連する問題