2015-01-16 30 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'后面的代码获取更多数据。 –