2017-02-20 99 views
0

任何人都知道這裏有什麼問題嗎?點擊jquery淡出

的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);    
} 

編輯(21/02/2017):

好球員,現在我意識到,真正的問題在包裝上。我也有一個celandar,我使用AJAX updatePanel,以防止點擊日曆時刷新頁面...這就是整個問題。我在沒有更新面板的空白項目中試過,效果很好。我不知道爲什麼更新面板會干擾。任何想法爲什麼會發生這種情況,以及任何解決方法來解決它?...我很抱歉,我一開始並沒有澄清。

感謝您的支持不可估量。

回答

0

爲你的代碼所示,ONCLICK做包含事件的定義的函數,所以我相信的,你不上的HTML understan事件,這樣你的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;"); 
+0

謝謝您的回答。據我所知,禁用或不可見的ASP元素不會出現在HTML代碼中,因此您無法將任何javascript附加到不存在的元素。我做了一些代碼(它必須是這樣),然後我不想執行JavaScript上點擊啓用和附件。無論如何,我明白你的觀點,但功能提升良好,問題在於內容不。我不知道我是否混淆myslef ... –

+0

如果你願意,我相信的都是西班牙語健談 –

+0

是的,我也相信你太....我只是不停地用英語書面方式因爲我們是在一個英文論壇。 –