2017-02-20 7 views
0

Кто знает что здесь не так?JQuery fadeout при нажатии

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#, когда происходят события certains.

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):

Ok ребята, теперь я понял, что настоящая проблема заключается в оболочке. У меня также есть celandar, и я использую AJAX updatePanel, чтобы предотвратить обновление страницы, когда я нажимаю на календарные дни ... и вот в чем проблема. Я попробовал его в пустом проекте без панели обновления и отлично работает. Я не знаю, почему медиа-панель вмешивается. Любые идеи, почему это происходит, и какие-либо обходные пути для его решения? ... Извините, что я не уточнил сначала.

Спасибо за вашу неоценимую поддержку.

ответ

0

как ваш код показывает, OnClick сделать функцию, которая содержит определение события, поэтому я верю, что вы не understan события на HTML так что ваш код в OnLoad из JQuery будет:

$(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

Да, я верю, что вы тоже ... Я просто продолжаю писать на английском, потому что мы находимся на английском форуме. –

Смежные вопросы