单击Jquery淡出

时间:2017-02-20 10:09:35

标签: javascript c# jquery asp.net

任何人都知道这里有什么问题吗?

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会干扰。任何想法为什么会发生这种情况以及解决它的任何变通方法?...我很抱歉我一开始并没有澄清。

感谢您的不可估量的支持。

1 个答案:

答案 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;");