当javascript返回false时,onclick不起作用。我需要javascript返回false才能为按钮设置动画。如果我返回true,则onClick可以工作,但动画不起作用。我试过做__doPostBack和UseSubmitBehaviour,但似乎没有任何效果。任何帮助将非常感谢如何解决这个问题。
asp按钮的代码:
<asp:LinkButton id="btn_salaries" onClientClick="return fncsave();" OnClick="btn_clicked" UseSubmitBehavior="false" runat="server" type="button" class="list-group-item" Text="getCharitySalaries"/>
Javascript代码:
function fncsave(){
$(document).ready(function(){
$("#list").click(function(){
$("#list_of_btns").animate({left: '-290px'});
});
});
return false;
}
更新
我在ajax中制作动画,但我不知道我是否正确地执行此操作,因为它不执行动画。
这是我的代码:
function fncsave(){
alert("dsfdsf");
$(document).ready(function(){
$(document).ajaxStart(function(){
$("#list_of_btns").animate({left: '-290px'});
}
}
return true;
}
答案 0 :(得分:2)
您不应该在click事件处理程序上检查文档就绪事件。此外,当有人点击您正在调用fncsave函数的链接时,但在该函数内,您正在订阅带有id列表的标签上的另一个事件(单击)。 如果我理解正确,你应该这样做:
function fncsave(){
$("#list_of_btns").animate({left: '-290px'});
return false;
}
正如评论一样,“return false”意味着它不会继续正常的事件处理流程,即提交表单。
如果您返回true,则表单已提交。这意味着表单数据被发送到服务器并执行C#代码。然后,页面如果完全重新加载(从头开始)。在这种情况下,动画没有意义,在C#代码运行时你需要AJAX来执行动画。请参阅本教程关于AJAX(Tutorial about AJAX)。
答案 1 :(得分:0)
试试这个
function fncsave(){
$("#list").click(function(){
$("#list_of_btns").animate({left: '-290px'},900,function(){
return false;
});
});
}
答案 2 :(得分:0)
我有动画&#39;默认值为false的变量。如果单击按钮,请检查动画是否为假,&#39; preventDefault()&#39;取消提交,播放动画,&#39; setTimeOut()&#39;将函数设置为3000ms后,将动画指定为true,并触发“点击”。在按钮上。这一次,动画是真的,它将数据发布到服务器。
<asp:Button ID="btn_salaries" OnClick="Button_Click" runat="server" type="button" Text="getCharitySalaries" />
<br />
<script type="text/javascript">
$(document).ready(function (e) {
var animated = false;
$('#' + '<% = btn_salaries.ClientID %>').click(function (ev) {
if (!animated) {
ev.preventDefault();
$(this).animate({ left: '-290px' });
setTimeout(function () {
animated = true;
$('#' + '<% = btn_salaries.ClientID %>').trigger('click');
}, 3000);
}
});
});
</script>
希望得到这个帮助。
答案 3 :(得分:0)
这应该做你想要的。
function fncsave(){
$("#list_of_btns").animate({left: '-290px'},900,function(){
// Do __doPostBack here
});
return false;
}
在动画完成之后,它会延迟回发。另一种方法是使用更新面板来避免跟随动画的回发闪烁。