The idea, expressed by Kevin in comment, is to use a closure to associate specific timer variables to each element.
Change
jQuery('.hlp').mouseenter(function() {
var v = "#" + jQuery(this).parent().parent().attr("id") + " .help";
if( typeof startclose !== undefined) {
clearTimeout(startclose);
}
startopen = setTimeout(function(){
jQuery(v).fadeIn(togglespeed);
}, delaytime);
}).mouseleave(function(){
var v = "#" + jQuery(this).parent().parent().attr("id") + " .help";
if( typeof startopen !== undefined) {
clearTimeout(startopen);
}
startclose = setTimeout(function(){
jQuery(v).fadeOut(togglespeed);
}, delaytime);
});
to
jQuery('.hlp').each(function(){
var startopen, startclose;
jQuery(this).mouseenter(function() {
var v = "#" + jQuery(this).parent().parent().attr("id") + " .help";
if( typeof startclose !== undefined) {
clearTimeout(startclose);
}
startopen = setTimeout(function(){
jQuery(v).fadeIn(togglespeed);
}, delaytime);
}).mouseleave(function(){
var v = "#" + jQuery(this).parent().parent().attr("id") + " .help";
if( typeof startopen !== undefined) {
clearTimeout(startopen);
}
startclose = setTimeout(function(){
jQuery(v).fadeOut(togglespeed);
}, delaytime);
});
});