Witam, dopiero zaczynam z jQuery, więc pytanie może wydawać się banalne.
Mam stronę z obrazkami, które wyświetlają się poprzez pętlę for.
Pod każdym obrazkiem jest przycisk "mocne" wraz z oceną wysyłaną/pobieraną do bazy danych.
Napisałem skrypt, który
- po kliknięciu "mocne" wysyła do kontrolera prośbę o podniesienie oceny,
- odbiera od kontrolera aktualną ocenę obrazka,
- podmienia w widoku ocenę, na tę, którą dostaje od kontrolera
- wyświetla pod oceną napis "dzięki"
Skrypt działa tak sobie. To znaczy: po kliknięciu wyświetla aktualną ocenę, ale... jednego obrazka przy ocenie każdego innego obrazka.
Klikam "mocne" przy jednym, a przy każdym obrazku wyświetla się ocena tego, przy którym kliknąłem.
I drugi błąd:
napis "dzięki" wyświetla się tylko przy pierwszym obrazku, pomimo, że kliknąłem "mocne" przy obrazku trzecim w kolejności, to napis pokazuje się przy tym pierwszym.
oto skrypt:
<script>
$(document).ready(function () {
$('body').on('click', '.voteUp', function (e) {
e.preventDefault();
var $btn = $(this);
var replaceUrl = $btn.attr('href');
var $vote = $('.badge');
$.getJSON(replaceUrl, function (json) {
if ('oks' === json.status){
$($vote).text(json.message);
$('#vote').fadeIn();
$('#vote').fadeOut(5000);
}
});
});
});
</script>