2010-06-25 132 views
1

我有一個帶有一些JQuery選項卡的asp.net頁面。一切正常。 我在其中一個選項卡中添加了一個下拉列表,這會導致回發。回發後,我想要選擇相同的選項卡。在asp.net上的jquery選項卡選擇

我初始化標籤爲:

<script type="text/javascript"> 
    $(document).ready(function() { 
    var $myTabs = $(".tabsDiv").tabs(); 
</script> 

然後,在pageLoad的事件,我注入一個腳本來選擇標籤:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "TabSelect", "$myTabs.tabs('select', 1);", true); 

出於某種原因,這是行不通的。該腳本正在運行,但未選中選項卡。 是因爲RegisterClientScriptBlock將腳本放置在頁面的底部,並且出於某種原因,它運行得太晚?

任何幫助表示讚賞。 THX提前

回答

2

調用$ myTabs.tabs( '選擇',1);我認爲導致錯誤。 $ myTabs不是全局變量。它的範圍僅限於$(document).ready(function(){...}); 你可以試試$(「。tabsDiv」)。tabs('select',1);並看看它是否有效?

問候......

+0

不,沒有選擇標籤。 如果我將這一行直接放在包含在head部分的腳本中,它就可以工作。如果它被注入到PageLoad中,則什麼都不會發生。 我不明白... – Dante 2010-06-25 12:14:25

+0

你在UpdatePanel中使用這個嗎?因爲那是另一回事。 – Padel 2010-06-25 12:39:04

+0

沒有更新面板.... 綜上所述,在部分頁面被初始化,因爲我在後文寫的,萬一DDL導致回傳我添加另一個腳本,就像你貼。 – Dante 2010-06-25 12:42:01

1

它可能太早運行......在頁面底部是好的,試試這個來代替:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "TabSelect", 
    "$(document).ready(function() { $myTabs.tabs('select', 1); });", true); 

基本上,它也運行在準備好了事件的代碼。

+0

就像它在其他意見的陳述的,它提供了JS錯誤有關的變量不存在... – Dante 2010-06-25 12:13:09

+0

對不起,沒看到一個變量不存在錯誤什麼...別然後使用$ myTabs,只需調用$(「。tabsDIV」)。tabs('select',1);然後;這就是你如何使用插件... – 2010-06-25 13:20:51

相關問題