2012-04-16 25 views
0

我有一個jQuery的滑塊,打開和關閉我的股利。但是當頁面得到回傳時,div被關閉。 我想讓div保持打開狀態。jQuery的div滑塊時回發div關閉

我滑塊

if ($(".div").is(":hidden")) { 
      $(".div").slideDown(1000); // slide it down 

     } else { 
      $(".div").slideUp(1000); // hide it 
     } 

我想過改變地址,如

website.com#open 

然後檢查ADRESS ,但我怎麼能做到這一點?

回答

0

頁面回發時,標記恢復爲原始狀態。所以,$(".div").is(":hidden")將始終返回true。

您可以創建某種狀態標識符並用它來檢查狀態。

0

我會在Html中處理這個。你必須有書面的HTML語句這樣

<div class="div" style="display:none"></div> 

我會寫:

<div class="div"></div> 
+0

當我有多個div,我只想要一個用戶打開,然後我不能這樣做。因爲那時候div會打開。 但謝謝你的回答 – saadan 2012-04-16 10:40:09

0

嘗試做這種方式:

var isPostBackObject = document.getElementById('isPostBack'); 
if (isPostBackObject != null) { 

} else { 
//show your div open 
} 
+0

其實我已經嘗試過這樣的東西。但是當我有幾個div可以在我的頁面上滑動時,我不知道在回發後我打開了哪個div。如果你明白的話。 如果我只有一個我可以做到這一點,但我得到了不止一個,可以在同一個網站上滑動 – saadan 2012-04-16 10:07:18

+0

@ saadan-每個div應該有一個單獨的「ID」基於你可以做。或者你給相同的id到所有的div?如果你有一個單獨的div中包含所有的div,這將使你的工作變得簡單,這樣你就可以使div可見,這樣每個其他的div都將在頁面加載時打開。 – coder 2012-04-16 10:08:46

+0

確定我所有的div都有唯一的id,但是if(isPostBackObject!= null) 我不知道該div是否打開? ,因爲我看不到哪個用戶打開了 – saadan 2012-04-16 10:25:54

0

你需要堅持的div狀態回發之間。您可以通過在URL中的回傳之間傳遞狀態或在服務器上記錄狀態來準備下一回傳。

你可以使用一個網址與一個參數,如;

http://website.com?open=true 

然後,您可以使用url參數解析函數檢查頁面加載的div狀態,例如;

var QueryString = function() { 
    // This function is anonymous, is executed immediately and 
    // the return value is assigned to QueryString! 
    var query_string = {}; 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
    var pair = vars[i].split("="); 
     // If first entry with this name 
    if (typeof query_string[pair[0]] === "undefined") { 
     query_string[pair[0]] = pair[1]; 
     // If second entry with this name 
    } else if (typeof query_string[pair[0]] === "string") { 
     var arr = [ query_string[pair[0]], pair[1] ]; 
     query_string[pair[0]] = arr; 
     // If third or later entry with this name 
    } else { 
     query_string[pair[0]].push(pair[1]); 
    } 
    } 
    return query_string; 
}(); 

你可以在頁面加載使用,然後檢查:

$(document).ready(function(e){ 
if(QueryString.open == 'true') 
{ 
$(".div").show(); 
} 
}); 

的JavaScript解析PARAM功能由昆汀here寫的。

+0

非常感謝您接近我所尋找的答案,但如何在按下我的按鈕時更改我的查詢。 ? – saadan 2012-04-16 10:35:23

+0

@saadan,它取決於你的按鈕是什麼以及它是否在表單中作爲提交按鈕。假設是這樣,請確保表單「action」url已更新以反映div的當前狀態,以便在頁面刷新後出現url參數。 – 2012-04-16 14:15:21

+0

當我按下按鈕,它運行jQuery滑塊,所以我不能讓頁面刷新。否則它不會運行滑動功能。 我必須在客戶端設置它。 – saadan 2012-04-16 19:04:08