2015-09-18 115 views
0

在我的頁面中,我有很多隱藏的div。在頁面加載時,div是隱藏的。同時點擊特定div的鏈接將顯示。我需要它,因爲在頁面重新加載div應顯示。在ajax jquery頁面重新加載後點擊鏈接顯示隱藏的div

我的代碼是在這裏:

<li><a class="add_new" href="javascript:void(0);" onClick="showdivs()">Add </a></li> 
<li><a class="info" href="javascript:void(0);" onClick="showdivs()">info</a></li> 

<div id="add_new">hai.....</div> 
<div id="info">heloo..</div> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 

<script> 
    $(window).load(function() { 
     $("#info").hide(); 
     $("#add_new").hide(); 
    }); 

    function showdivs() { 
     var divs = $("#info,#add_new"); 

     //Show chosen div, and hide all others 
     $("li a").click(function() { 

      $(divs).hide(); 
      $("#" + $(this).attr("class")).show(); 

     }); 
</script> 

代碼工作,但該頁面是沒有得到刷新。我需要重新加載頁面,然後顯示隱藏的div。

+0

所以,你正試圖使div的出現鏈接被點擊時,但爲什麼要刷新頁面? –

+0

我不知道我是否理解,你想疼痛可見的divs狀態?那麼你必須使用cookies – swidmann

回答

0

我不知道這是你在找什麼,但我想你想重新加載頁面,因爲div沒有顯示出來,問題在於,你添加了clickhandler來顯示divs「onClick」:

function showdivs() { //this is called, when you click a link 
     var divs = $("#info,#add_new"); 

     //Show chosen div, and hide all others 
     $("li a").click(function() {// here the clickhandler is added, so the first time it won't work 

      $(divs).hide(); 
      $("#" + $(this).attr("class")).show(); 

     }); 

所以你必須點擊兩次才能顯示div。因此,這裏是我的aproach:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
<script> 
$(window).load(function() { 
    $("#info").hide(); 
    $("#add_new").hide(); 
}); 

function showdivs(element) {// element is this param 
    $("#" + $(element).attr("class")).show(); 
} 

</script> 
<!-- add parameter this--> 
<li><a class="add_new" href="javascript:void(0);" onClick="showdivs(this)">Add </a></li> 
<li><a class="info" href="javascript:void(0);" onClick="showdivs(this)">info</a></li> 

<div id="add_new">hai.....</div> 
<div id = "info">heloo..</div> 

你也可以做這樣的:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
<script> 
$(window).load(function() { 
    $("#info").hide(); 
    $("#add_new").hide(); 

    $("li a").click(function() { 
     $("#" + $(this).attr("class")).show(); 
    }); 

}); 

</script> 

<li><a class="add_new" href="javascript:void(0);">Add </a></li> 
<li><a class="info" href="javascript:void(0);">info</a></li> 

<div id="add_new">hai.....</div> 
<div id = "info">heloo..</div> 
0

當你告訴一個div,存儲使用document.cookie = "divToShow=" + idOfTheDivToShow;餅乾類。

如果要刷新頁面,請在javascript中使用Location.reload()

然後,使用此功能,讓您的divToShow cookie,並顯示相關的div:

function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0; i<ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1); 
     if (c.indexOf(name) == 0) return c.substring(name.length,c.length); 
    } 
    return ""; 
} 
0

試試這個代碼

<body> 
<li><a class="add_new" href="javascript:void(0);" onClick="showdivs()">Add </a></li> 
<li><a class="info" href="javascript:void(0);" onClick="showdivs()">info</a></li> 

<div id="add_new">hai.....</div> 
<div id="info">heloo..</div> 

<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script> 

<script> 
    jQuery(window).load(function() { 
     jQuery("#info").hide(); 
     jQuery("#add_new").hide(); 
    }); 

    function showdivs() { 
     var divs = jQuery("#info,#add_new"); 

     //Show chosen div, and hide all others 
     jQuery("li a").click(function() { 

      jQuery(divs).hide(); 
      jQuery("#" + $(this).attr("class")).show(); 
     }); 
    } 
</script> 
</body> 
相關問題