После некоторых исследований я думаю, что проблема заключалась в том, как была отформатирована строка возврата из моего HtmlHelper
.
Первоначально у меня было это в HtmlHelper
:
public static class NotificationHelper
{
public static string PasswordNotification(this HtmlHelper html)
{
//Other code...
return "<div class=feedback-complete><img src=/Images/SuccessTick.png class=notification-icon alt=success>Your password has been succesfully saved</div>";
Который выглядит так в HTML (обратите внимание на отсутствие апострофов вокруг имени класса):
<div class=feedback-complete><img src=/Images/SuccessTick.png class=notification-icon alt=success>Your password has been succesfully saved</div>
Вместо этого я изменил HtmlHelper
, чтобы отформатировать строку следующим образом:
public static class NotificationHelper
{
public static string PasswordNotification(this HtmlHelper html)
{
//Other code...
return String.Format("<div class='{0}'></label><img src=/Images/SuccessTick.png class='{1}'alt=success>Your password has been succesfully saved</div>", "feedback-complete", "notification-icon");
Затем он рендерил HTML, который имел '
вокруг имени класса ...
<div class='feedback-complete'><img src=/Images/SuccessTick.png class=notification-icon alt=success>Your password has been succesfully saved</div>
Как только я изменил вышеупомянутое, я получил эффект затухания, который я искал после 3-секундной задержки, используя следующий jQuery (подсказка для Hat Charlino
)
setTimeout("jQuery('div.feedback-complete').fadeOut()", 3000);
Наконец, мне интересно, что отсутствие апострофов вокруг имени класса не помешало CSS правильно отобразить HTML. Вначале я (наивно) предположил, что тот факт, что HTML-фрагмент правильно отображался без апострофов, означал, что это не могло быть причиной того, почему эффект затухания jQuery не работал для меня ...