На сколько я разобрался, дело в том, что при использовании jQuery можно задать более одного обработчика одному событию.
Например, при событии hover на .main_slider, такой код :
$('.main_slider').hover(function() { alert('раз'); }
$('.main_slider').hover(function() { alert('двас'); }
выдаст оба события, сначала первое, затем второе.
В вашем случае, каждый вызов функции inte(); добавляет для $('.main_slider') ещё один mouseleave с вызовом функции inte();
Т.е.
навели раз, и при mouseleave вызываеться inte();
навели два, и при mouseleave вызываеться inte();inte(); (т.е. создаются два таймера),
Решение:
либо делать $('.main_slider').unbind('mouseleave'); (и hover) в .mouseleave(function(){ , либо, заменить
$('.main_slider').mouseleave(function() {
inte();
});
на
$('.main_slider').mouseleave(function() {
interval = setInterval(function(){
$('.main_slider .rt_arrow').click();
}, 4500);
});
ПС: сам я только изучаю JS, так что возможно что-то упустил.