根据数据属性用按钮执行不同的操作

Perform different actions with a button based on the data attribute

我只有一个按钮。他的第一个动作是停止视频。然后是图标更改和数据状态。他的第二个动作是重新加载页面。

问题是,即使我编写了一些条件,我也做不到第二个。有时它什么都不做,有时第二个动作与第一个动作同时出现。

这是我的 Jquery 代码:

// STOP VIDEO (ACTION 1)
$("#button").click(function(){
    $('#button').attr({
        src: 'img/film.png',
        'data-status':'stop'
    });
}); 

// RELOAD (ACTION 2)
$("#button[data-status='stop']").click(function() {
    location.reload();
});

// OTHER METHOD FOR RELOAD (ACTION 2)
if ($("#button").data( "status", "stop" )) {
    $("#button").click(function() {
        location.reload();
    });
}

这是我的 HTML 代码:

<img id="button" src="skip.png" data-status="play">

你能帮帮我吗?

通过多次绑定点击事件,您将在第二次点击时触发这两个函数。相反,您应该将决定 stop/reload 的逻辑放在一个事件回调中:

$("#button").click(function(){
    var button = $(this);

    if(button.attr('data-status') === 'stop') {
        // Already stopped
        location.reload();

    } else {
        // Stop
        button.attr({
            src: 'img/film.png',
            'data-status':'stop'
        )};
    }
)};