2015-01-16 36 views
0

我使用jquery將高度動態設置爲iframe。它工作正常,但問題是,如果用戶clicks在鏈接上查看更多的數據低於DataList那麼它將高度完美設置爲iframe,但它滾動到頂部本身。我想保留Scroll position,它的時間是ClickLinkButton。我正在使用c#LinkButton但它並不重要。整頁在iFrame以內,所以我只是根據document高度設置iframe高度。因此根據代碼在jquerypageLoad()上調用function

我的代碼:使用jQuery將高度設置爲iframe後滾動問題

 function adjustHeight() { 
      var iframe = jquery(window.top.document).find("#frameContent"); 
      iframe.height(0 +'px'); 

      var height = jquery(document).height() + 30; 

      iframe.height(height +'px'); 
     } 

     function pageLoad() { 
      adjustHeight(); 
     } 

怎麼辦呢?一切都在c#DataListLinkButton在裏面UpdatePanel而我只是使用jquery設置高度。

HTML代碼:DataList HTML with View More

+0

也許你有一段代碼,如'.scrollTop()'在別的地方? – Brewal

+1

哪個datalist?哪個鏈接按鈕?根本沒有足夠的上下文,做一個jsfiddle。 –

+0

@Brewal,no。我沒有在任何地方使用'.scrollTop()'。 –

回答

1

多次嘗試後,我得到了解決。

這只是因爲我在設置新高度之前將高度設置爲0而導致問題。
簡單地說,我刪除了下面的行,它的工作。 :)

iframe.height(0 +'px');

0

從我聽到的,我假設用戶點擊該鏈接的錨鏈接,或#鏈接,是否正確?這會導致頁面跳轉到頂部。你可以做什麼,是回報您點擊功能/事件的虛假內部:

例子:

$("a.someLink").bind("click", function(e){ // Your logic here... // The below prevents the native behavior of the link occurring... e.preventDefault(); e.returnValue = false; return false; })

UPDATE

嘗試刪除內聯從您的按鈕javascript函數(鏈接)而是用jQuery實現它,添加返回false等。因此,您的按鈕代碼現在看起來像這樣:

<a href="#" class="viewmore" id="lnkbtnViewMore">View More</a>

和jQuery這樣的:

$("#lnkbtnViewMore").bind("click", function(e){ __doPostBack('lnkbtnViewMore',''); e.preventDefault(); e.returnValue = false; return false; })

這應該做的伎倆......

+0

我不知道爲什麼這已經是dv – Brewal

+0

爲什麼投下了票?它在OP的問題中明確指出「...點擊鏈接...」 – SimonDowdles

+0

我沒有使用任何'inline javascript'。 'LinkBut​​ton'通過'ClickEvent'後面的代碼獲取更多數據。 –