asp.net&jquery淡入淡出效果

问题描述:

我有一个名为“projects”,div id =“main”>的按钮和一个标签在里面。该页面的正文写在标签上。当我按下按钮时,文本将改变,使用label.text = ..在C#中的button_Click事件中。这是按钮:asp.net&jquery淡入淡出效果

<asp:Button ID="projects" runat="server" OnClick="projects_Click"/> 

我想要做的是在更改文本时添加淡入淡出效果。我看到最简单的方法是使用jQuery。我加了这一点:

<head> 
<script type='text/javascript'> 
    $(function() { 
     $("#projects").click(function (e) { 
      e.preventDefault(); 
      $('#main').fadeOut(1000); 
      $("#main").fadeIn(1000);    
     });   
    }); 
</script> 
</head> 

现在发生的是,如果我按下按钮的项目,文本只淡出,然后消失在,但它没有改变,不执行projects_Click。如果我删除e.preventDefault(); ,文字改变但没有消退效果。我怎样才能让他们一起工作?旧文本淡出,projects_Click被执行并且fadeIn开始生效。

+1

您需要了解服务端功能与客户端功能的区别。 Javasctipt/jQuery在服务器上的浏览器asp.net上执行。 Ajax经常被用来弥补这个差距。在代码中有'preventDefault();'是停止执行服务器端代码,因为这是按钮的默认操作。 – 2014-10-19 11:48:54

+0

您是否尝试过我的解决方案(第2部分)? – 2014-10-19 12:16:49

+0

我告诉你用户'animate()' - 自定义JS函数,并从按钮单击调用它,但是你完全不正确的方式。 – 2014-10-19 14:13:15

如果你能以下部分(在你的问题中提到),以JS移动,那么它会工作..

When I press the button, the text changes, using the label.text = .. inside the button_Click event inside C#. 

比方说,该文本是XYZ,那么你可以不喜欢这样。

$(function() { 
     $("#projects").click(function (e) { 
      e.preventDefault(); 
      $("#main").html("XYZ"); 
      $('#main').fadeOut(1000); 
      $("#main").fadeIn(1000);    
     });   
    }); 

如果这是在服务器端的计算,然后将这些代码块到webmethod,做一个在ajax call.click事件,在成功处理程序设置文本并做动画。

教程上面 - http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

OR

我有一个建议。

  1. 在aspx中定义一个javascript函数。如下。
function animate(){ 
    $('#main').fadeOut(1000); 
    $("#main").fadeIn(1000); 
} 
  1. 在按钮点击事件处理,设置标签文本,使用下面的行来启动在页加载(动画网页提交/按钮点击事件处理程序之后后完成)。
  2. Page.ClientScript.RegisterStartupScript(this.GetType(), "scr", "<script>animate();</script>");

    注意 - 你不能同时使用服务器端代码来设置一些文字或做preventDefault设置动画JS。这会让你在赶上22的情况。

开始=“2”>

文字太大而无法放入脚本中。 由于它是为一个键制作的,因此我最终必须使其适用于页面上的每个键。

我这样做:

<head> 
<script type='text/javascript'> 
    $(function() {   
     $('#main').hide; 
     $("#main").fadeIn(1000); 
    });   
    }); 
</script> 
</head> 

此函数执行每次页面重新加载,并因为这是一个页面的网站在中间唯一的主要内容发生变化,它是在每一个按钮点击执行。 Aspx更改文本,jQuery立即隐藏它,并且它慢慢淡化。没有淡出,但这种方法也很好,考虑它,我更喜欢它。

+0

这个答案或者像上面解释的那样工作,或者问题的更多细节?如果问题存在,则需要提出疑问,而不是回答。 – 2014-10-19 12:17:37

+1

@ user276 ...,如果您打算将其作为我回复帖子的“答复”发布,请发表评论(使用“添加评论”)。顺便说一句,我告诉你用户'animate()' - 自定义JS函数,并从按钮点击调用,但你完全不正确的方式。 – 2014-10-19 14:13:00