Jquery empty bug?

Jquery empty bug?

The following code will trigger alert twice. Looks like empty() does  not remove events as promised.
Looks like remove works(see commented code).
Is it a Jquery bug? or it's only me.

<div id = 'cc'>
<div id="div1">

<button class="this2">button 2</button>
</div>
</div>
    <script>var c = $('#div1');
var cc=0;
c.on('click','.this2', function() { cc++; alert(cc);}); 
c.empty().off("*");
c.append('<button class="this2">button 2</button>');
c.on('click','.this2', function() { cc++; alert(cc);}); 
/*
c.remove();
c = $('<div id="div1"><button class="this2">button 2</button></div>');
$('#cc').append(c);

c.on('click','.this2', function() { cc++; alert(cc);});
*/</script>