2016-06-13 6 views
2

Ich habe einen Knopf auf jedemWie gefällt erhöhen und nicht mag richtig

1) Posten

Schaltfläche

wenn Benutzer gemocht haben bereits die Post dann im Gegensatz zu Button

gezeigt wird hier

der HTML-Teil ist wenn Benutzer haben wie die Post nicht

<a href="javascript:void(0);" id="liker" data-count="0" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Like</a> 

, wenn der Benutzer bereits hat mag die Post

<a href="javascript:void(0);" id="unliker" data-count="1" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Unlike</a> 

hier ist der jquery Teil dieser Teil für gleiche Anfrage anders als Anforderung wird in diesem Tag <i class="fa fa-thumbs-up" id="cyli481" aria-hidden="true">&nbsp; 0</i>

Jetzt gezeigt

$(function() { 
    $("body").on("click", "#unliker", function() { 
     var t = $(this).data("id"), 
      a = $(this).data("count"), 
      f = $(this).data("fpc"); 
     a -= 1; 
     $("#cyli" + f).text(a); 
     $(this).attr("id", "liker"); 
     $(this).data('count', a); 
     $(this).text("Like"); 
     i = this, $.ajax({ 
      type: "POST", 
      url: "/ajax/unliker?io=" + t, 
      data: "id=" + t, 
      success: function(t) {} 
     }) 
    }); 
}); 

Wie Wert senden

$(function() { 
    $("body").on("click", "#liker", function() { 
     var t = $(this).data("id"), 
      a = $(this).data("count"), 
      f = $(this).data("fpc"); 
     a++; 
     $("#cyli" + f).text(a); 
     $(this).attr('id', 'unliker'); 
     $(this).data('count', a); 
     $(this).text('Unlike'); 
     i = this, $.ajax({ 
      type: "POST", 
      url: "/ajax/liker?io=" + t, 
      data: "id=" + t, 
      success: function(t) {} 
     }) 
    }); 
}); 

unten Teil

senden die Problem ist, wenn ich auf like oder anders klicke, wird der Wert nicht richtig hinzugefügt oder abgezogen.

für zB wenn data-count = "0" bedeutet das, es gibt keine wie in diesem Beitrag, aber wenn ich auf es klicke wird automatisch 2 und wenn ich dann auf ungleiche Schaltfläche klicke -1 - was oben falsch sein könnte Methode

+1

Warum gehst du nicht einfach ersetzen 'a ++' & 'a- = 1 'durch' a = 1' & 'a = 0 '? Es ist nicht perfekt und es beantwortet Ihre Frage nicht, aber es löst das Problem – tektiv

Antwort

0

Es funktioniert, wenn Sie nur die $(this).data("count") und $(this).data("count", a) zu $(this).attr("data-count") und $(this).attr("data-count", a) ändern.

diesen Code Versuchen:

$(function() { 
 
    $("body").on("click", "#liker", function() { 
 
     var t = $(this).data("id"), 
 
      a = $(this).attr("data-count"), 
 
      f = $(this).data("fpc"); 
 
     a++; 
 
     $("#cyli" + f).text(a); 
 
     $(this).attr('id', 'unliker'); 
 
     $(this).attr('data-count', a); 
 
     $(this).text('Unlike'); 
 
     i = this, $.ajax({ 
 
      type: "POST", 
 
      url: "/ajax/liker?io=" + t, 
 
      data: "id=" + t, 
 
      success: function(t) {} 
 
     }) 
 
    }); 
 
}); 
 
$(function() { 
 
    $("body").on("click", "#unliker", function() { 
 
     var t = $(this).data("id"), 
 
      a = $(this).attr("data-count"), 
 
      f = $(this).data("fpc"); 
 
     a -= 1; 
 
     $("#cyli" + f).text(a); 
 
     $(this).attr("id", "liker"); 
 
     $(this).attr('data-count', a); 
 
     $(this).text("Like"); 
 
     i = this, $.ajax({ 
 
      type: "POST", 
 
      url: "/ajax/unliker?io=" + t, 
 
      data: "id=" + t, 
 
      success: function(t) {} 
 
     }) 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="javascript:void(0);" id="liker" data-count="0" data-fpc="481" data-id="cDJod1RnUU45eXBQWmp">Like</a> 
 
<i class="fa fa-thumbs-up" id="cyli481" aria-hidden="true">&nbsp; 0</i>