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】:我认为您遇到的问题是因为“LinkButton”上的 javascript 被绕过了。需要 javascript 才能使“回发”工作。
对此最简单的解决方案是将其更改为“按钮”。 IMO 的“LinkButton”是不好的,永远不应该使用,因为 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 问题的主要内容,如果未能解决你的问题,请参考以下文章