如何抓住div元素?

时间:2013-01-30 19:15:19

标签: jquery

我有一个div,其中包含divimgah3input元素。它们动态变化(轮播)。所以我需要停止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();
        }
    }
);

问题出在哪里?

3 个答案:

答案 0 :(得分:3)

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

$('div.slider').on({
    mouseenter: function() {
        stopCarousel();
    },
    mouseleave: function() {
        startCarousel();
   }
}, 'div, img, a, h3, input');

答案 1 :(得分:1)

我认为您要查找的活动不是hover,而是mouseover

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

答案 2 :(得分: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/