Jquery切换两个函数auto

时间:2014-03-26 10:26:38

标签: jquery toggle

我有这段代码,但它不起作用:

$('.hover_shine').bind('mouseover', function() {
    $(this).css('background-position','10px 0');
});
$('.hover_shine').bind('mouseoutt', function() {
    $(this).css('background-position','-380px 0');
});
setTimeout(function(){
    $('.hover_shine').toggle($(this).trigger('mouseover'),$(this).trigger('mouseoutt'));
},500);

我想每500毫秒交换此元素的(mouseover,mouseoutt)事件

提前谢谢你 AGad

2 个答案:

答案 0 :(得分:0)

尝试使用事件mouseenter和mouseleave代替。

$('.hover_shine').bind('mouseenter', function() {
    $(this).css('background-position','10px 0');
});
$('.hover_shine').bind('mouseleave', function() {
    $(this).css('background-position','-380px 0');
});

您可能会想到jQuery中的旧“.toggle()”,它已被删除:请参阅http://api.jquery.com/toggle-event/

答案 1 :(得分:0)

尝试类似

的内容
var $el = $('.hover_shine'),
    interval;

function h1() {
    $el.css('color', 'red');
}

function h2() {
    $el.css('color', '');
}

function auto() {
    var fn;
    interval = setInterval(function () {
        (fn = fn == h1 ? h2 : h1)()
    }, 500)
}
$('.hover_shine').bind('mouseover', function () {
    h1();
    clearInterval(interval);
});
$('.hover_shine').bind('mouseout', function () {
    h2();
    auto();
});
auto();

演示:Fiddle