...

# help making numbers counternshow double digits like.. 00/00

Kah Hoe Wan
12-16-2010, 03:01 AM
I am using a great js gallery script from ....http://coffeescripter.com/code/ad-gallery/

they have a counter for the number of images shown, the number changes as user clicks on next bottom.

from looking at the script, the counter is anchor to .ad-info and the counter code from the JS is .....

_afterShow: function() {
this.gallery_info.html((this.current_index + 1) + ' / '+ this.images.length);
if(!this.settings.cycle) {

Can anyone help make the number show double digits only for the numbers 1,2,3,4,5,6,7,8,9 (example- 03/07 or 09/28 or 03/58).. etc..etc

thanks for looking.

Old Pedant
12-16-2010, 04:08 AM
function twoDigit(n) { return n < 10 ? "0"+n : n; }

_afterShow: function() {
this.gallery_info.html(
twoDigit(this.current_index + 1) + ' / '+ twoDigit(this.images.length) );
...

Kah Hoe Wan
12-16-2010, 04:36 AM
[code]function twoDigit(n) { return n < 10 ? "0"+n : n; }

_afterShow: function() {
this.gallery_info.html(
twoDigit(this.current_index + 1) + ' / '+ twoDigit(this.images.length) );
...

hey old pedant

its giving me a syntax error on line [code]function twoDigit(n) { return n < 10 ? "0"+n : n; }
Maybe there was a typo somewhere? please try again.

thanks.

Old Pedant
12-16-2010, 06:09 AM
Nope. Problem is on your end.

Works like a charm:

<script>
function twoDigit(n) { return n < 10 ? "0"+n : n; }

document.write( "<hr>Testing twoDigit(3)/twoDigit(9): " + twoDigit(3) + "/" + twoDigit(9) );

document.write( "<hr>Testing twoDigit(1)/twoDigit(22): " + twoDigit(1) + "/" + twoDigit(22) );
</script>

Maybe you put it in the wrong place in your code.

Safest thing is to put it directly after the <script> tag.

Philip M
12-16-2010, 10:21 AM
Be aware that the returned value is a string, not a number. So

this.gallery_info.html((this.current_index + 1)
will cause the script to fail if this.current_index = 01 etc. "01" + 1 = 011

twoDigit("011")/twoDigit(9) // error!!

You should use the values with 0 prefix for display only, not for any kind of calculation.

This ought to work:-

function twoDigit(n) { return n < 10 ? "0"+n : n; }

_afterShow: function() {
var str2num = Number(this.current_index); // example 07
var num2str = twoDigit(str2num + 1); // example 08
this.gallery_info.html(num2str + ' / ' + twoDigit(this.images.length) );
...

Kah Hoe Wan
12-16-2010, 10:29 PM
thanks Old pedant and Phillip, both version of the code works. my site would look just ok without.