How about using setTimeout
to control the firing of events - as:
$("div").html((new Array(1000)).join(" test")).on("mousewheel DOMMouseScroll MozMousePixelScroll", function()
{
if (!$(this).data('flag'))
{
var self = this;
$(this).data('timeout', window.setTimeout(function()
{
$(self).data('flag', false);
}, 500));
$(this).data('flag', true);
console.log('here');
}
});
Fiddle: http://jsfiddle.net/aN4hU/