0

我想创建一个带有事件的按钮,该事件在用户单击它时发生。如果有人单击了此按钮,则会显示一个滑块。

如果没有人释放此滑块 div,我想要一个功能,该 div 会在 5 秒后切换,但如果有人释放滑块,则不会发生任何事情!

我创建了一个小提琴,希望有人可以解决这个问题? http://jsfiddle.net/84nVQ/50/

function handler1() {
    clearTimeout(time);
    $('#volumeChange').attr("class", "selected");
    $('#volume-slider').slider({
        orientation: 'horizontal',
        value: 100,
        max: 1,
        step: 0.01,
        animate: true,
        slide: function(e, ui) {
            alert(ui.value);
        }
    }).show();
}

function handler2() {
    time = setTimeout(function() {
        $('#volumeChange').attr("class", "");
        $('#volume-slider').toggle();
        $('#volume-slider').clearTimeout(time);
    }, 5000);
}

function handler3() {
    clearTimeout(time);
}


$("#volumeChange").on({
    click: function(e) {
        handler1();
        $('#volume-slider').mouseleave(handler2).mouseenter(handler3);
    }
});
4

1 回答 1

0

有两个错误:未定义的时间变量和clearTimeout。这段代码应该可以工作

var time = null;

function handler1() {
    clearTimeout(time);
    $('#volumeChange').attr("class", "selected");
    $('#volume-slider').slider({
        orientation: 'horizontal',
        value: 100,
        max: 1,
        step: 0.01,
        animate: true,
        slide: function(e, ui) {
            movie.volume = ui.value;
        }
    }).show();
}

function handler2() {
    time = setTimeout(function() {
        $('#volumeChange').attr("class", "");
        $('#volume-slider').toggle();
        clearTimeout(time);
    }, 5000);
}

function handler3() {
    clearTimeout(time);
}


$("#volumeChange").on({
    click: function(e) {
        handler1();
        $('#volume-slider').mouseleave(handler2).mouseenter(handler3);
    }
});
于 2012-11-06T02:30:17.480 回答