Я постараюсь сделать это максимально простым.
Я только начал работать с jquery и не знаю, как лучше всего делать то, что я хочу, или я совершенно не прав. Я пытаюсь сделать простую кнопку «рекомендовать», чтобы рекомендовать статьи, но я хочу, чтобы, как только пользователь рекомендовал одну статью, он не может рекомендовать ее снова.
Пока у меня есть кнопка, работающая и отправляющая данные с помощью функции $ .post, а затем, когда пользователь проголосовал, я отключаю кнопку, чтобы он не мог снова публиковать данные. Проблема в том, что если он перезагружает страницу, кнопка снова активируется (я контролирую этот сервер, но я также хочу отключить кнопку клиента).
Какой наилучший подход можно обнаружить из jquery, если пользователь порекомендовал одну статью в функции .ready, чтобы не связывать событие кнопки?
Я могу придумать два жизнеспособных решения, но ни одно из них не кажется мне достаточно чистым, во-первых, было бы дать идентификатор направления кнопке в представлении, если рекомендация загружена моделью, чтобы событие никогда не связывалось. Или другое решение - сделать еще один вызов ajax в документе. Уже готов проверить, не была ли статья уже рекомендована.
Многие сайты имеют такое поведение (например, YouTube), поэтому должен быть лучший способ сделать это.
Код:
это моя "кнопка" в представлении:
<% // Display the button %>
<%= Html.Image("/ECA/Content/Images/notchecked.png", new { id = "recommend" })%>
И моя jquery-привязка:
//Add click event to recommend the article
$("img[id^='recommend']").click
(
function() {
UpdateVote( 2);
}
);
Моя функция обратного вызова:
var UpdateVoteCallBack=function(data) {
$("#recommend")
.attr('src','/ECA/Content/Images/checked.png');
$("#recommend").unbind('click');
}