任何人都知道这里有什么问题吗?
Javascript
function editDayClicked() {
var leftsideB = $(".BtnAbsLeftPos");
var rightsideB = $(".BtnAbsRightPos");
leftsideB.fadeOut({ queue: false, duration: 1500 });
rightsideB.fadeOut({ queue: false, duration: 1500 });
leftsideB.animate({ left: '-6%' }, 1500);
rightsideB.animate({ left: '100%' }, 1500,
function () {
$("#UserCalendar").fadeOut({ duration: 1500 });
$("#UserDayData").fadeOut({ duration: 1500 });
});
}
当某些事件发生时,通过C#后面的代码将此功能插入到单击按钮中。
C#
protected void UserCalendar_SelectionChanged(object sender, EventArgs e)
{
...
EditDay.Enabled = true;
EditDay.Attributes.Add("onclick", "javascript:editDayClicked(); return true;");
currentDate.Text = UserCalendar.SelectedDate.ToLongDateString();
}
然而,当单击该按钮时,将调用该函数,但没有任何反应。之后我也按下了代码后面的按钮。我告诉你所有相关的代码:
ASPX
<asp:ImageButton ID="EditDay" ClientIDMode="Static" runat="server" ImageUrl="~/Images/EditB.png" CssClass="GenericButton" Enabled="false" ToolTip="Edit the current day" OnClick="EditDay_Click" />
C#
protected void EditDay_Click(object sender, ImageClickEventArgs e)
{
...
Response.Redirect("DayTasks.aspx?day=" + UserCalendar.SelectedDate.Day);
}
EDITED(21/02/2017):
好的伙计们,现在我意识到真正的问题在于包装器。我还有一个celandar,我使用AJAX updatePanel,以防止在我点击日历日时刷新页面......这就是整个问题。我在没有更新面板的空项目中尝试了它并且工作正常。我不知道为什么updatepanel会干扰。任何想法为什么会发生这种情况以及解决它的任何变通方法?...我很抱歉我一开始并没有澄清。
感谢您的不可估量的支持。
答案 0 :(得分:0)
如你的代码所示,onCLick做一个包含事件定义的函数,所以我相信你不会在html上讨论事件 所以你的jquery onload中的代码将是:
$(window).load(onLoad);
function onLoad() {
$("#UserCalendar").fadeOut({ duration: 1500 });
$("#UserDayData").fadeOut({ duration: 1500 }, "swing",
function () {
var leftsideB = $(".BtnAbsLeftPos");
var rightsideB = $(".BtnAbsRightPos");
leftsideB.fadeOut({ queue: false, duration: 1500 });
rightsideB.fadeOut({ queue: false, duration: 1500 });
leftsideB.animate({ left: '-6%' }, 1500);
rightsideB.animate({ left: '100%' }, 1500);
});
//alert('faded out');
}
这样,当加载页面时,会定义事件,因此当点击触发时,将调度它。
最后,这段代码没有必要:
EditDay.Attributes.Add("onclick", "javascript:editDayClicked(); return true;");