2013-01-23 50 views
1

我遇到了java/css选项卡式菜单系统的难题。我已经将菜单启动并运行了一段时间,但最近我尝试在其中一个页面上添加一个新的制图系统,并且我一直难以正确显示它。在网站加载上运行javascript

我已将它追溯到需要的css条目,以防止显示所有选项卡式内容,直到您将鼠标悬停在每个选项卡上。 CSS是如下:

div.tabscontainer div.curvedContainer .tabcontent{ 
display:none; 
padding:20px; 
font-size:12px; 
font-family: "CenturyGothicRegular", "Century Gothic", Arial, Helvetica, sans-serif; 
} 

至于说,该显示:没有阻止所有的内容被显示,直到你将鼠标悬停在标签之一。但是,相同的显示:无法阻止我的图表脚本正确绘制图表。如果我评论显示:没有显示,则图表正确绘制,但所有选项卡式内容显示在页面加载中。排序抓的22

但是,如果我不注释掉显示:无,然后将鼠标悬停在任何菜单选项卡,下面的JavaScript运行和所有相应的内容是否正确隐藏或显示要求:

<script language="JavaScript"> 
$(document).ready(function() { 
    $(".tabs .tab[id^=tab_menu]").hover(function() { 
     var curMenu=$(this); 
     $(".tabs .tab[id^=tab_menu]").removeClass("selected"); 
     curMenu.addClass("selected"); 

     var index=curMenu.attr("id").split("tab_menu_")[1]; 
     $(".curvedContainer .tabcontent").css("display","none"); 
     $(".curvedContainer #tab_content_"+index).css("display","block"); 
    }); 
}); 
</script> 

我可以理解脚本是以伪代码的方式做什么的,它改变了选项卡本身的属性(添加/删除“选定的类”),以允许它出现“突出显示”,同时更改内容容器的属性(添加/删除显示:无或块)以隐藏或显示适用的每个选项卡的内容。

我现在的想法是,如果我添加上述脚本的修改版本来运行页面加载并自动选择第一个选项卡,那么我可以从CSS中删除全局显示:none,只允许javascript整理出来。

最后,这导致了我的问题。我仍然对JavaScript不熟悉,我正试图弄清楚如何修改上述代码,以反映我需要它在页面加载时自动选择给定菜单(tab_menu_50),同时仍允许用户将鼠标悬停在任何位置标签。

任何你可以给的指针都很乐意接受,如果上面没有任何意义,我提前道歉! (虽然,如果你能告诉我,我已经得到了它完全错误的,我会很感激的,太多!)

乔纳森

试过删除所有内容,但仍给该网站的想法结构,希望这有助于找到答案。可能有一些错误的标签但是这只是因为黑客的工作,我刚刚做了,让我张贴在这里的一些HTML的...

<html> 
<head> 

# Below script enables tab switch on mouseover 

<script language="JavaScript"> 
$(document).ready(function() { 
$(".tabs .tab[id^=tab_menu]").hover(function() { 
    var curMenu=$(this); 
    $(".tabs .tab[id^=tab_menu]").removeClass("selected"); 
    curMenu.addClass("selected"); 

    var index=curMenu.attr("id").split("tab_menu_")[1]; 
    $(".curvedContainer .tabcontent").css("display","none"); 
    $(".curvedContainer #tab_content_"+index).css("display","block"); 
}); 
}); 
</script> 

# Below script draws the chart 

<script type="text/javascript"> 
    $(function(){ 
    $('.charttable').visualize({type: 'line'}); 
    }); 
</script> 


<style> 


# Below style sheet contains the problematic entry of display:none 

div.tabscontainer div.curvedContainer .tabcontent{ 
display:none; 
padding:20px; 
font-size:12px; 
font-family: "CenturyGothicRegular", "Century Gothic", Arial, Helvetica, sans-serif; 
} 


</head> 

<body> 


<div class="tabscontainer"> 
    <div class="tabs"> 
     <div class="tab first selected" id="tab_menu_50"> 
      <div class="link">Home</div> 
      <div class="arrow"></div> 
     </div> 
     <div class="tab" id="tab_menu_150"> 
      <div class="link">Screen2</div> 
      <div class="arrow"></div> 
     </div> 
     <div class="tab last" id="tab_menu_250"> 
      <div class="link">Screen3</div> 
      <div class="arrow"></div> 
     </div> 
    </div> 
    <div class="curvedContainer"> 
     <div class="tabcontent" id="tab_content_50"> 
     </div> 
     <div class="tabcontent" id="tab_content_150"> 
     </div> 
     <div class="tabcontent" id="tab_content_250"> 
<table class="charttable"> 
    <caption>Visits from August 16 to August 21</caption> 
    <thead> 
    <tr> 
     <td></td> 
     <th scope="col">chartlabel1</th> 
     <th scope="col">chartlabel2</th> 
     <th scope="col">chartlabel3</th> 
     <th scope="col">chartlabel4</th> 
     <th scope="col">chartlabel5</th> 
     <th scope="col">chartlabel6</th> 
     <th scope="col">chartlabel7</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <th scope="row">SuiteA</th> 
     <td>54</td> 
     <td>49</td> 
     <td>52</td> 
     <td>61</td> 
     <td>44</td> 
     <td>57</td> 
     <td>61</td> 
    </tr> 
    <tr> 
     <th scope="row">SuiteB</th> 
     <td>12</td> 
     <td>11</td> 
     <td>5</td> 
     <td>13</td> 
     <td>11</td> 
     <td>10</td> 
     <td>9</td> 
    </tr> 
    <tr> 
     <th scope="row">SuiteC</th> 
     <td>73</td> 
     <td>67</td> 
     <td>64</td> 
     <td>74</td> 
     <td>61</td> 
     <td>73</td> 
     <td>75</td> 
    </tr> 
</tbody> 
</table> 
</div> 

</div> 

</body> 
</html> 
+0

当你说'自动选择第一个tab',什么是“选择第一个选项卡”? – adamdehaven

+0

这将有助于如果你可以张贴一些'HTML' .. –

+0

谢谢你的回复 - AdamD - 对不起,我的意思是自动选择标签,就好像用户在它上面一样。将尝试和张贴一些HTML现在... – user2000718

回答

0

只是触发事件的DOM准备,后的悬停事件是必然您的示例代码:

$(function(){ 
    $('#desiredTab').trigger('mouseover'); 
}); 

演示:http://jsfiddle.net/LC2un/

+0

不错,我现在可以放弃显示:没有,但它仍然显示激活得太快,并防止图表绘制...?尽管如此... – user2000718

0

如果我正确理解你的问题,你可能想使用可见性:隐藏而不是显示:无。

如果设置display:none,那么除非显式编码维度,否则某些计算无法在这些节点上完成;计算出的尺寸(没有固定宽度或高度的节点无法在所有浏览器中以可靠的方式进行计算)。

将节点设置为可见性:隐藏本质上将其不透明度设置为0,同时将其保留在文档中。

尝试更换显示:无;与visiblity:隐藏

希望应该工作。如果没有,你也可以尝试使用jQuery的.hide()方法对文档加载设置其知名度..

$("div.tabscontainer div.curvedContainer .tabcontent").hide() 
+0

感谢您的咨询!我现在试试这个... – user2000718

+0

这使我可以删除显示:无,但它仍然停止图表正常绘制..?当我们说话时,仍然可能会有用,而且我尝试了不同的暗示,欢呼! – user2000718