Add incremental numbers at the end of a string in a loop in Javascript.

Posted by Kyle Sevenoaks on Stack Overflow See other posts from Stack Overflow or by Kyle Sevenoaks
Published on 2010-03-16T09:32:40Z Indexed on 2010/03/16 9:36 UTC
Read the original article Hit count: 507

Filed under:
|
|

This Javascript is part of a Foreach loop.

var stickytooltip={
 tooltipoffsets: [20, -30], //additional x and y offset from mouse cursor for tooltips
 fadeinspeed: 200, //duration of fade effect in milliseconds
 rightclickstick: false, //sticky tooltip when user right clicks over the triggering element (apart from pressing "s" key) ?
 stickybordercolors: ["#0a5692", "#0a5692"], //border color of tooltip depending on sticky state
 stickynotice: ["Press \"s\"", "or right click", "to sticky box"], //customize tooltip status message
 stickynotice2: "Click outside this box to hide it", //customize tooltip status message

 //***** NO NEED TO EDIT BEYOND HERE

 isdocked: false,

 positiontooltip:function($, $tooltip, e){
  var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1]
  var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(), 
  x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(stickytooltip.tooltipoffsets[0]*2) : x
  y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
  $tooltip.css({left:x, top:y})
 },

 showbox:function($, $tooltip, e){
  $tooltip.fadeIn(this.fadeinspeed)
  this.positiontooltip($, $tooltip, e)
 },

 hidebox:function($, $tooltip){
  if (!this.isdocked){
   $tooltip.stop(false, true).hide()
   $tooltip.css({borderColor:'black'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[0]}).html(this.stickynotice)
  }
 },

 docktooltip:function($, $tooltip, e){
  this.isdocked=true
  $tooltip.css({borderColor:'darkred'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[1]}).html(this.stickynotice)
 },


 init:function(targetselector, tipid){
  jQuery(document).ready(function($){
   var $targets=$(targetselector)
   var $tooltip=$('#'+tipid).appendTo(document.body)
   if ($targets.length==0)
    return
   var $alltips=$tooltip.find('div.atip')
   if (!stickytooltip.rightclickstick)
    stickytooltip.stickynotice[1]=''
   stickytooltip.stickynotice=stickytooltip.stickynotice.join(' ')
   stickytooltip.hidebox($, $tooltip)
   $targets.bind('mouseenter', function(e){
    $alltips.hide().filter('#'+$(this).attr('data-tooltip')).show()
    stickytooltip.showbox($, $tooltip, e)
   })
   $targets.bind('mouseleave', function(e){
    stickytooltip.hidebox($, $tooltip)
   })
   $targets.bind('mousemove', function(e){
    if (!stickytooltip.isdocked){
     stickytooltip.positiontooltip($, $tooltip, e)
    }
   })
   $tooltip.bind("mouseenter", function(){
    stickytooltip.hidebox($, $tooltip)
   })
   $tooltip.bind("click", function(e){
    e.stopPropagation()
   })
   $(this).bind("click", function(e){
    if (e.button==0){
     stickytooltip.isdocked=false
     stickytooltip.hidebox($, $tooltip)
    }
   })
   $(this).bind("contextmenu", function(e){
    if (stickytooltip.rightclickstick && $(e.target).parents().andSelf().filter(targetselector).length==1){ //if oncontextmenu over a target element
     stickytooltip.docktooltip($, $tooltip, e)
     return false
    }
   })
   $(this).bind('keypress', function(e){
    var keyunicode=e.charCode || e.keyCode
    if (keyunicode==115){ //if "s" key was pressed
     stickytooltip.docktooltip($, $tooltip, e)
    }
   })
  }) //end dom ready
 }
}

//stickytooltip.init("targetElementSelector", "tooltipcontainer")
stickytooltip.init("*[data-tooltip]", "mystickytooltip")

I need to just add some code to the end of "mystickytooltip" to add 1, 2, 3, 4 each time it loops. My JS-foo is nonexistant, please help :)

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about loops