Учитывая следующий код на ASP.NET MVC View:
<% using (Ajax.BeginForm("AddCommunity",
new AjaxOptions { UpdateTargetId = "community-list",
OnSuccess = "BindCommunityHover" }))
{ %>
Add Community: <input type="text" id="communityName" name="communityName" />
<input type="submit" value="Add" />
<% } %>
И следующий метод JavaScript в файле:
function BindCommunityHover() {
$(".community-item-li").hover(
function () { $(this).addClass("communityHover"); },
function () { $(this).removeClass("communityHover"); }
);
};
Есть ли причина, по которой BindCommunityHover не вызывается, когда возвращается результат AJAX?
Div-список сообщества правильно обновлен (действие возвращает частичное представление). Я также попытался установить OnComplete (вместо OnSuccess) безрезультатно.
Метод BindCommunityHover вызывается в $ (function () {...}); блокировать при первой загрузке страницы, и для всех существующих элементов .community-item-li это работает.
Частичный результат от моего контроллера заменяет все элементы в этом div на более одного класса. Предполагается, что метод OnSuccess сработает после обновления документа.
Обновление : к ... это странно. Я добавил следующее в метод BindCommunityHover:
alert($(".community-item-li").size());
Я получаю 240 в предупреждении, когда страница загружается и когда срабатывает обратный вызов. Итак, обратный вызов запущен, jQuery сопоставляет элементы, но не применяет стили ...