ASP.NET jQuery 问题

Posted

技术标签:

【中文标题】ASP.NET jQuery 问题【英文标题】:ASP.NET jQuery issue 【发布时间】:2010-12-20 19:03:10 【问题描述】:

我正在用 jQuery 挖掘一些与工作相关的东西,并且我试图让特定的事件流正常工作,但我似乎无法理解。

我了解 jQuery 如何在前端运行,如何从 document.ready 区域调用或可调用函数,并且在页面重新加载时(回发后)在我的前端运行了一些动画 -然而,这不是我想要的确切功能。

使用标准的 asp.net 回发模型(无 ajax),以下是否可行?

1) 页面加载,一些 jQuery 执行通过动画将我的 div 带到正确的位置。 (工作正常)。 2) 用户可以单击 div 内的链接之一(或 div 本身),然后执行 jQuery 动画效果,一旦该动画效果结束,使用 javascript 回发页面,传入被点击的元素。 3) 页面回帖,我在页面重新加载之前完成所有数据处理,然后我的 document.ready jQuery 再次运行。

我似乎无法获得的部分是#2,我可以通过将 CSS 类附加到元素然后处理该类的 .click 事件来使一些 jQuery 在单击我的元素时运行。这项工作很好,但页面没有回发(点击的项目是一个链接按钮,只是为了方便)。

如果我在 JScript 函数中手动放置回发代码,并在该 jQuery 函数块内的动画效果链的末尾调用该函数,页面会回发,但我没有得到任何 jQuery 动画效果。

我真正需要做的是

1) 调用jQuery动画效果 2)等到动画效果完成 3) 完成后执行页面回发

无论如何,我都不是 javascript 专家,但到目前为止我都做得很好。

任何积分将不胜感激。 问候

【问题讨论】:

当您保持回发时,您的意思是像 AJAX 调用一样将 POST 发送回您的 ASP 脚本吗? (我不熟悉 ASP) 你能发布一些代码吗?这将帮助您获得答案。 【参考方案1】:

我认为您遇到的问题是因为“LinkBut​​ton”上的 javascript 被绕过了。需要 javascript 才能使“回发”工作。

对此最简单的解决方案是将其更改为“按钮”。 IMO 的“LinkBut​​ton”是不好的,永远不应该使用,因为 a) 如果你没有 javascript,它就无法访问 b) 用户应该期望任何看起来是链接 (GET) 的东西都没有副作用。

【讨论】:

【参考方案2】:

jQuery 动画是异步的(因此您的浏览器不会锁定)。如果您在动画调用之后手动添加回发代码,回发可能会在动画有机会之前发生。

考虑将回发代码添加到动画回调中。动画完成后调用回调 - 这听起来像你想要的。

function prePostBackAnimation()    
    $('something').animate( width: 70 , function() 
        //jQuery will call this method after the animation finishes.
        //Add postback code here
        __doPostBack(theTarget,theArgument);
    );

代码修改自here。

【讨论】:

以上是关于ASP.NET jQuery 问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery-mobile 和 ASP.NET 组合问题

关于 <asp:Button> 的 JQuery / ASP.NET 新手问题

ASP.NET jQuery 问题

ASP.NET 按钮单击清除 jQuery 水印

Jquery\ASP.NET 可拖动和可调整大小的项目列表

asp.net jquery datatables.net webmethod [重复]