2014-09-05 66 views
0

我想设置一个函数内的函数传递onClick时的JavaScript值,然后我想我的函数采取点击目标的ID保存到一个var,所以我可以基于其返回的javascript var id在该对象上调用.show。Django + Jquery + Tabs,标签不会显示在点击

这是我如何输出列表链接:

{%for stat in ip_new_list %}       
    {% if 'Newip' in stat%} 
     <li class="active"><a href onClick="showTable();" id='{{stat.1}}'>{{stat.1}} </a></li> 
    {%endif%} 
{%endfor%}        
</ul> 

我隐藏所有与类名使用下面的代码标签:

$(document).ready(function(){ 
     $('#loading').hide(); 
     $('#helppage').hide(); 
     $('.iptable').hide(); 
    }); 

这是我的代码为了显示带有被点击链接的ID的div标签,我已经验证了div标签id匹配链接id,该链接id是那种格式的'100.000.000.000'ip地址。

function showTable(clicked){ 
    console.log("ShowTableClicked"); 
    console.log(clicked.id); 
    var clickedID = "#" + clicked.id; 
    $(clickedID).show(); 
    console.log(clickedID); 
} 

这里是我的Django/HTML代码:

<ul> 
{%for stat in ip_new_list %}       
    {% if 'Newip' in stat%} 
     <li class="active" id={{stat.1}}><a href='#' onClick="showTable(this);" id={{stat.1}}>{{stat.1}}</a></li> 
    {%endif%} 
{%endfor%}        
</ul> 


{%for stat in ip_new_list %} 
     {% if 'Break' in stat%} 
       </div> <div id="{{stat.1}}" class='iptable'> 
     {%endif%} 

     {% if 'First' in stat%} 
       <div id="{{stat.1}}" class='iptable'> 
     {%endif%} 


      {{stat.0}} | {{stat.1}} | {{stat.2}} <br> 

{%endfor%} 

这里是控制台输出:

"ShowTableClicked" ipreport:56 
"000.000.000.000" ipreport:57 
"#000.000.000.000" 

但div标签仍然没有出现我用调试检查员验证div标签是否有正确的ID。请让我知道你是否可以找出原因。

+0

'$( '#' + clickedID).show();' – bencripps 2014-09-06 02:15:48

回答

0

这里是正确的工作答案。我不得不添加链接到链接的id,因为它没有找到div标签,因为他们都有这个id,它正在改变样式或两者,所以为了解决这个问题,我只是附加链接并删除取代这个效果很好。现在,它的时间,风格和使用淡出而不是显示。

感谢您的帮助。

{%for stat in ip_new_list %}       
    {% if 'Newip' in stat%} 
     <a href='#' onClick="showTable(this);" id="{{stat.1}}link">{{stat.1}}</a> 
    {%endif%} 
{%endfor%}        



<div class="table-responsive"> 
{%for stat in ip_new_list %} 
     {% if 'Break' in stat%} 
       </tbody></table></div> <div id="{{stat.1}}" class='iptable'> <table class="table" id='table-data'> <tbody> 
     {%endif%} 
     {% if 'First' in stat%} 
       <div id="{{stat.1}}" class='iptable'><table class="table" id='table-data'><tbody> 
     {%endif%}  

     {% if 'Break' in stat%} 
     {%else%} 
      {% if 'First' in stat%} 
       {%else%} 
      <tr> 
       <td>{{stat.0}}</td> 
       <td>{{stat.1}}</td> 
       <td>{{stat.2}}</td>   
      </tr> 
     {%endif%} 
     {%endif%} 

{%endfor%} 

</div> 

在页面的底部添加了脚本并将其更改为此。

<script> 


function showTable(clicked){ 
    $(".iptable").hide(); 
    var id = clicked.id 
    id = id.replace('link', ''); 
    console.log(id); 
    document.getElementById(id).style.display = "block"; 
} 

</script> 
0

您的问题是在jQuery选择线 - $("#" + clickedID).show();

选择元素jQuery中由ID(和CSS,顺便说一句)与#开始。

此处了解详情: http://api.jquery.com/id-selector/

+0

这不是因为我已经做了它的修改版本,但它不工作的解决方案。 – 2014-09-08 20:11:39