Without anyone to pull me out of the newbie abyss, I floundered until I go something. This answer looked so close to what I needed that I used it as a starting point. Now I've at least gotten here.
The key is, as I suspected, creating a timer to call the function again if the mouse is still down and clearing it on mouseup:
var _this = null;
$('.jcarousel-next').mousedown(function () {
$('.jcarousel-next').jcarouselControl({
target: '+=2'
});
_this = $(this);
_this.click();
window.setTimeout(CallAgain, 100);
});
$('.jcarousel-next').mouseup(function () {
_this = null;
});
function CallAgain() {
if (_this != null) {
//alert("Inside Call again");
_this.click();
window.setTimeout(CallAgain, 100);
}
};
On the fiddle, the right arrow has the scroll on mousedown, while left/prev is left at the default. Now I just have to smooth it out.