Latest topics
» Forumactif Edge - Releases
by Ange Tuteur Tue 03 Sep 2019, 11:49
» GIFActif - Giphy Button for the Editor
by Ange Tuteur Wed 08 May 2019, 17:21
» Forum Closure
by Ange Tuteur Mon 01 Jan 2018, 01:28
» Chit Chat Thread
by Valoish Sun 31 Dec 2017, 19:15
» Font/Text background color.
by Valoish Sun 31 Dec 2017, 19:11
» Forumactif Messenger - Instant Message Application for Forumotion
by Wolfuryo Sun 31 Dec 2017, 18:24
» [GAME] Count to One Million!
by brandon_g Fri 29 Dec 2017, 18:58
» Post Cards
by manikbiradar Wed 20 Dec 2017, 07:50
» [GAME] Countdown from 200,000
by Valoish Wed 13 Dec 2017, 23:22
» GeekPolice Tech Support Forums - GeekPolice.net
by Dr Jay Mon 11 Dec 2017, 19:12
» Asking about some plugin for Forumotion
by Dr Jay Mon 11 Dec 2017, 19:10
» [GAME] What are you thinking right now?
by Van-Helsing Sat 09 Dec 2017, 14:51
» Widget : Similar topics
by ranbac Wed 06 Dec 2017, 18:11
» Change the Background of the Forum and put an image and how to make prefixs?
by Clement Wed 06 Dec 2017, 15:19
» Hello from Western Australia
by SarkZKalie Wed 06 Dec 2017, 05:34
by Ange Tuteur Tue 03 Sep 2019, 11:49
» GIFActif - Giphy Button for the Editor
by Ange Tuteur Wed 08 May 2019, 17:21
» Forum Closure
by Ange Tuteur Mon 01 Jan 2018, 01:28
» Chit Chat Thread
by Valoish Sun 31 Dec 2017, 19:15
» Font/Text background color.
by Valoish Sun 31 Dec 2017, 19:11
» Forumactif Messenger - Instant Message Application for Forumotion
by Wolfuryo Sun 31 Dec 2017, 18:24
» [GAME] Count to One Million!
by brandon_g Fri 29 Dec 2017, 18:58
» Post Cards
by manikbiradar Wed 20 Dec 2017, 07:50
» [GAME] Countdown from 200,000
by Valoish Wed 13 Dec 2017, 23:22
» GeekPolice Tech Support Forums - GeekPolice.net
by Dr Jay Mon 11 Dec 2017, 19:12
» Asking about some plugin for Forumotion
by Dr Jay Mon 11 Dec 2017, 19:10
» [GAME] What are you thinking right now?
by Van-Helsing Sat 09 Dec 2017, 14:51
» Widget : Similar topics
by ranbac Wed 06 Dec 2017, 18:11
» Change the Background of the Forum and put an image and how to make prefixs?
by Clement Wed 06 Dec 2017, 15:19
» Hello from Western Australia
by SarkZKalie Wed 06 Dec 2017, 05:34
Recent Tutorials
Top posting users this month
Top Achievers
Who is online?
In total there are 11 users online :: 0 Registered, 0 Hidden and 11 Guests :: 2 Bots
None
Most users ever online was 515 on Tue 14 Sep 2021, 15:24
None
Most users ever online was 515 on Tue 14 Sep 2021, 15:24
Adding text to reputation counter
Page 1 of 1 • Share
- LauraNew Member
- Gender :
Posts : 6
Points : 2829
Reputation : 4
Language : Spanish, Catalan, English
Browser : Forum Version :
Hi!
First, I'm not too sure this was the right place to post, my apologies if this topic shouldn't go here.
What I'm trying to do is add a text to the reputation counter, so that it looks like this before voting:
And like this once you have:
(I have removed the thumbs down option as well as the vote bar with CSS).
I tried just adding the string to the JS, like this:
But it seems it's not enough, as right now it does display the text, but the vote counter doesn't update properly. Once it's clicked, instead of showing the counter with the text, NaN appears (refreshing the page, though, makes the number of votes and text display correctly again).
Could anyone help me out with this, please? Thanks in advance!
First, I'm not too sure this was the right place to post, my apologies if this topic shouldn't go here.
What I'm trying to do is add a text to the reputation counter, so that it looks like this before voting:
And like this once you have:
(I have removed the thumbs down option as well as the vote bar with CSS).
I tried just adding the string to the JS, like this:
- Code:
$(function(){
for (var vote = $('.vote'), i = 0, j = vote.length, bar, total, percent, n_pos, n_neg; i < j; i++) {
bar = $('.vote-bar', vote[i])[0];
if (bar) {
total = +bar.title.replace(/.*?\((\d+).*/, '$1');
percent = +bar.title.replace(/.*?(\d+)%.*/, '$1');
n_pos = Math.round(total * (percent / 100));
n_neg = total - n_pos;
} else {
n_pos = 0;
n_neg = 0;
}
vote[i].insertAdjacentHTML('afterbegin', '<span class="vote_num vote_good">' + n_pos + ' me gusta ' + '</span>');
vote[i].insertAdjacentHTML('beforeend', '<span class="vote_num vote_bad">' + n_neg + '</span>');
$('a', vote[i]).click(function() {
var that = this,
links = $('a', that.parentNode);
$.get(that.href, function() {
var n = that[/minus/.test(that.className) ? 'nextSibling' : 'previousSibling'];
n.innerHTML = ++n.innerHTML;
links.fadeOut();
});
links.attr('href', '#').css({
opacity : 0.4,
cursor : 'default'
});
return false;
});
}
});
But it seems it's not enough, as right now it does display the text, but the vote counter doesn't update properly. Once it's clicked, instead of showing the counter with the text, NaN appears (refreshing the page, though, makes the number of votes and text display correctly again).
Could anyone help me out with this, please? Thanks in advance!
Last edited by Laura on Thu 23 Mar 2017, 16:55; edited 1 time in total
Hi @Laura,
It's displaying NaN ( Not a Number ), because when the script adds the votes to .vote_num.vote_good it does some math on the innerHTML content, and since there's non-numerical text inside the element it returns NaN. Here's a quick example :
Here's the corrected script :
It's displaying NaN ( Not a Number ), because when the script adds the votes to .vote_num.vote_good it does some math on the innerHTML content, and since there's non-numerical text inside the element it returns NaN. Here's a quick example :
- Code:
+'Hello' == NaN // Hello cannot be converted to a number
+'1' == 1 // the string is converted to a number
Here's the corrected script :
- Code:
$(function(){
for (var vote = $('.vote'), i = 0, j = vote.length, bar, total, percent, n_pos, n_neg; i < j; i++) {
bar = $('.vote-bar', vote[i])[0];
if (bar) {
total = +bar.title.replace(/.*?\((\d+).*/, '$1');
percent = +bar.title.replace(/.*?(\d+)%.*/, '$1');
n_pos = Math.round(total * (percent / 100));
n_neg = total - n_pos;
} else {
n_pos = 0;
n_neg = 0;
}
vote[i].insertAdjacentHTML('afterbegin', '<span class="vote_num vote_good">' + n_pos + '</span><span class="vote_good"> me gusta </span>');
vote[i].insertAdjacentHTML('beforeend', '<span class="vote_num vote_bad">' + n_neg + '</span>');
$('a', vote[i]).click(function() {
var that = this,
links = $('a', that.parentNode);
$.get(that.href, function() {
var n = that[/minus/.test(that.className) ? 'nextSibling' : 'previousSibling'];
n.previousSibling.innerHTML = ++n.innerHTML;
links.fadeOut();
});
links.attr('href', '#').css({
opacity : 0.4,
cursor : 'default'
});
return false;
});
}
});
- LauraNew Member
- Gender :
Posts : 6
Points : 2829
Reputation : 4
Language : Spanish, Catalan, English
Browser : Forum Version :
Hi, @Ange Tuteur,
Thank you so much for taking the time to help me.
I've switched to your code and here's what I'm getting now:
Thank you so much for taking the time to help me.
I've switched to your code and here's what I'm getting now:
Whoops I frogot to add previousSibling to the increment. Try now :
- Code:
$(function(){
for (var vote = $('.vote'), i = 0, j = vote.length, bar, total, percent, n_pos, n_neg; i < j; i++) {
bar = $('.vote-bar', vote[i])[0];
if (bar) {
total = +bar.title.replace(/.*?\((\d+).*/, '$1');
percent = +bar.title.replace(/.*?(\d+)%.*/, '$1');
n_pos = Math.round(total * (percent / 100));
n_neg = total - n_pos;
} else {
n_pos = 0;
n_neg = 0;
}
vote[i].insertAdjacentHTML('afterbegin', '<span class="vote_num vote_good">' + n_pos + '</span><span class="vote_good"> me gusta </span>');
vote[i].insertAdjacentHTML('beforeend', '<span class="vote_num vote_bad">' + n_neg + '</span>');
$('a', vote[i]).click(function() {
var that = this,
links = $('a', that.parentNode);
$.get(that.href, function() {
var n = that[/minus/.test(that.className) ? 'nextSibling' : 'previousSibling'].previousSibling;
n.innerHTML = ++n.innerHTML;
links.fadeOut();
});
links.attr('href', '#').css({
opacity : 0.4,
cursor : 'default'
});
return false;
});
}
});
- LauraNew Member
- Gender :
Posts : 6
Points : 2829
Reputation : 4
Language : Spanish, Catalan, English
Browser : Forum Version :
That worked! Thank you so much, @Ange Tuteur!
- Sponsored content
Similar topics
Create an account or log in to leave a reply
You need to be a member in order to leave a reply.
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum