2016-04-14 11 views
0

返される結果の数に基づいてタブを作成する動的コードがあります。私の問題は今、タブのタイトルにチックを追加したいのですが、<li><a hrefに移動することはできません>チックを追加する必要があります(<a href>に追加)。私は.parent().find()をたくさん試しましたが、私はちょうどこれを正しいものにすることはできません。何が私が行方不明です(そして間違いなくそれは簡単です!)私はこのために徹底的に検索しましたJQueryが現在のタブにテキストを追加します

function getData() { 
$.getJSON("getQuestions.asp?sup="+dataVal1+"&prod="+dataVal2, function(data){}) 
    .done(function(data){    
     html = '<div class="center">Supplier: '+suppName+'</div><div class="center">' 
     html += 'Part No &amp; Description: '+partCode+' - '+partName+'</div><ul>' 
     var len = data.length; 
     for (var i = 0; i< len; i++) { 
      html += '<li><a href="#q'+data[i].id+'">'+data[i].shortdesc+'</a></li>' 
     } 
     html += '</ul>' 
     for (var i = 0; i< len; i++) { 
      html += '<div id="q'+data[i].id+'">'+data[i].question 
      html += '<fieldset><legend>Question '+parseInt(i+1)+'</legend>' 
      if (data[i].evidence == '1') { 
       html += '<iframe id="upload" frameborder="0" width="500" scrolling="no" src="upload.asp?supp='+suppCode+'&part='+partCode+'&q='+data[i].shortdesc+'"></iframe>' 
       console.log(data[i].shortdesc) 
      } else { 
       html += '<div class="yesno" data-desc="'+data[i].shortdesc+'"><span class="btn small" id="yes" >YES</span>&nbsp;<span class="btn small" id="no">NO</span></div>' 
      } 
      html +='</fieldset></div>' 
     } 

     $('#output').html(html); 
     $("#output").tabs(); 
    }); 
}; 

、私が他の場所かもしれ厳密解をヒットしていませんでした可能性があります。

答えて

0

タブイベントを使用してこれを行うことができます。そこにアンカータグを見つけるためのアクセス権があります。

function getData() { 
$.getJSON("getQuestions.asp?sup="+dataVal1+"&prod="+dataVal2, function(data){}) 
    .done(function(data){    
     html = '<div class="center">Supplier: '+suppName+'</div><div class="center">' 
     html += 'Part No &amp; Description: '+partCode+' - '+partName+'</div><ul>' 
     var len = data.length; 
     for (var i = 0; i< len; i++) { 
      html += '<li><a id="tab_"'+ i +' href="#q'+data[i].id+'">'+data[i].shortdesc+'</a></li>' 
     } 
     html += '</ul>' 
     for (var i = 0; i< len; i++) { 
      html += '<div id="q'+data[i].id+'">'+data[i].question 
      html += '<fieldset><legend>Question '+parseInt(i+1)+'</legend>' 
      if (data[i].evidence == '1') { 
       html += '<iframe id="upload" frameborder="0" width="500" scrolling="no" src="upload.asp?supp='+suppCode+'&part='+partCode+'&q='+data[i].shortdesc+'"></iframe>' 
       console.log(data[i].shortdesc) 
      } else { 
       html += '<div class="yesno" data-desc="'+data[i].shortdesc+'"><span class="btn small" id="yes" >YES</span>&nbsp;<span class="btn small" id="no">NO</span></div>' 
      } 
      html +='</fieldset></div>' 
     } 

     $('#output').html(html); 
     $("#output").tabs(); 
    }); 
}; 

    $("#output").tabs({ 
       activate : function(event, ui){ 

        var tab_index = ui.newTab.index(); 
        var anchor_tag = ui.newTab.children("a"); 
        var anchor_tag_id = anchor_tag.attr("id"); 

        localStorage.setItem("active_tab_anchor", anchor_tag_id); 
       } 
    }); 

    $('#answer_event').on('click', function(){ 
      var anchor_tag_id = localStorage.getItem("active_tab_anchor"); 
     var anchor_tag = $('#'+anchor_tag_id); 
     var href = anchor_tag.attr("href"); 
     href += href + 'tick'; 
     anchor_tag.attr('href', href); 
    }); 

正確にティックを追加するかどうかによって異なります。

ここでのイベントを確認します。私は私の元の質問を広げなければならないところhttp://api.jqueryui.com/tabs/

+0

です。各タブの中には「質問」があります。答えが出たら、そのタブに目盛りを付けてください。 – Hyperjase

+0

これを考えてみましょう。タブをクリックすると、アクティブなタブIDを持つローカルストレージ変数を設定できることを意味します。ユーザーが質問に答えた場合は、その特定のタブをIDで探し、それに関連するアンカータグを見つけようとします。 – dquinonez

+0

タブごとにアンカータグを作成するときは、そのタグにIDを追加してから、activateイベントでそのアンカータグIDをローカルストレージに保存してみてください。ユーザーが質問に答えると、ローカルストレージに保存したIDで簡単にアンカータグを見つけてhrefを変更することができます。 – dquinonez

関連する問題