0

我有一个div, div, img, a,元素h3input它们动态变化(轮播)。所以我需要停止setInterval在悬停时提供此更改,但它不起作用(hover事件不会触发)。

jQuery('div.slider').on('hover', 'div, img, a, h3, input',
//Tried jQuery('body').on('hover', 'div.slider'...
//Alsro tried on('focusin focusout')
    function(event){
        console.log('on');
        if(event.type === 'focusin'){
            console.log(event.type);
            stopCarousel();
        }
        else if(event.type === 'focusout'){
            console.log(event.type);
            startCarousel();
        }
    }
);

问题出在哪里?

4

3 回答 3

3

.hover(), 是一个函数而不是一个事件,它使用mouseentermouseleave所以它肯定不会有一个匹配 focusin 或 focusout 的类型。我只是这样做:

$('div.slider').on({
    mouseenter: function() {
        stopCarousel();
    },
    mouseleave: function() {
        startCarousel();
   }
}, 'div, img, a, h3, input');
于 2013-01-30T19:19:04.603 回答
1
$('.slider').mouseenter(function (event) {
    console.log(event.type);
    stopCarousel();
});

$('.slider').mouseleave(function (event) {
    console.log(event.type);
    startCarousel();
});

参考:http ://api.jquery.com/mouseleave/和http://api.jquery.com/mouseenter/

于 2013-01-30T19:20:21.633 回答
1

我认为您正在寻找的事件不是hover但是mouseover

在纯 Javascript中不hover存在任何事件。mouseover悬停是开始悬停并mouseout停止悬停事件的结论。在你的情况下mouseover应该是你正在寻找的事件。

于 2013-01-30T19:17:15.560 回答