0

我正在构建一个 ASP.NET 网站,我对一页的行为感到困惑,我有一个长表单和一个提交按钮,我在页面下面有一段 javascript 来处理页面滚动在提交表单时备份,第一次单击提交按钮时它工作所有后续单击根本不起作用,知道为什么吗?

<script type="text/javascript">
    $(".thebutton").click(function(){
       $("html, body").animate({scrollTop: 200}, 1000); 
    });
</script>

干杯,蒂

4

3 回答 3

0

Your script will run BEFORE the Post.

Imagine if you will:

Initial Page Load Bind Click event with jQuery

Click Button jQuery Click is raised html and body scrollTop are set to 200 during the "animate" the form is submitted

asp.net back end click event code is run page is reloaded.

string script = "$(function() { $('html, body').scrollTop(200); });";
ClientScript.RegisterStartupScript(this.GetType(), "scrollTop", script, true);

That should take care of what you want to accomplish.

Hope it helps.

于 2009-10-10T02:12:30.973 回答
0

啊,

使用 Ajax 帖子使这与我上面的帖子不同。

您的 ajax 调用是否更改了页面上的按钮?我假设您正在使用带有按钮的 UpdatePanel。

因为当您进行 Ajax 调用时,UpdatePanel 中的控件正在重建,DOM 将它们视为不同的对象,并且这些新对象不再绑定到 jQuery click 函数。您需要在 ajax 发布后重新绑定这些按钮单击事件,以重新启用您正在寻找的功能。

使用 jQuerys 新的“实时”处理程序应该可以为您解决问题:

$(".thebutton").live("click", function() {
      $("html, body").animate({scrollTop: 200}, 1000);
});

希望能帮助到你。

于 2009-10-10T14:51:56.813 回答
0

如果您的提交按钮执行完整的回发,我将在第二个网页实例上查看源代码,并确保脚本仍然存在。

于 2009-10-09T19:57:10.960 回答