Javascript jQuery delay()未按预期工作

Javascript jQuery delay()未按预期工作,javascript,Javascript,正在为自定义购物车编写一小段代码。我想更改一个按钮以显示成功消息2秒钟,然后将该按钮恢复为原始HTML HTML <button id="42" class="btn btn-primary btn-block" type="button" onclick="added_to_order('42')">1st Semester<span class="glyphicon glyphicon-chevron-right float-right"></span>&

正在为自定义购物车编写一小段代码。我想更改一个按钮以显示成功消息2秒钟,然后将该按钮恢复为原始HTML

HTML

<button id="42" class="btn btn-primary btn-block" type="button" onclick="added_to_order('42')">1st Semester<span class="glyphicon glyphicon-chevron-right float-right"></span></button>
1学期
Javascript

function added_to_order(id){
    var old_html = $('#' + id + '').html();

    $('#' + id + '').html('<span class="glyphicon glyphicon-ok-sign"></span> Added to your order!');
    $('#' + id + '').removeClass('btn-primary').addClass('btn-success').delay(2000).html(old_html);
}
函数添加到订单(id){
var old_html=$('#'+id+'').html();
$('#'+id+'').html('已添加到您的订单!');
$('#'+id+'').removeClass('btn-primary').addClass('btn-success').delay(2000).html(旧的"html);
}
一切都很好,只是在按钮更新为旧HTML之前,我没有得到2秒的延迟


有什么想法吗?

在这种情况下,最好使用
setTimeout
功能

function added_to_order(id){
    var old_html = $('#' + id + '').html();

    $('#' + id + '').html('<span class="glyphicon glyphicon-ok-sign"></span> Added to your order!');

    $('#' + id + '').removeClass('btn-primary').addClass('btn-success');

    setTimeout(function() {

        $('#' + id + '').html(old_html);

    }, 2000);
}
函数添加到订单(id){
var old_html=$('#'+id+'').html();
$('#'+id+'').html('已添加到您的订单!');
$('#'+id+'').removeClass('btn-primary').addClass('btn-success');
setTimeout(函数(){
$('#'+id+'').html(旧html);
}, 2000);
}

在这种情况下,最好使用
setTimeout
功能

function added_to_order(id){
    var old_html = $('#' + id + '').html();

    $('#' + id + '').html('<span class="glyphicon glyphicon-ok-sign"></span> Added to your order!');

    $('#' + id + '').removeClass('btn-primary').addClass('btn-success');

    setTimeout(function() {

        $('#' + id + '').html(old_html);

    }, 2000);
}
函数添加到订单(id){
var old_html=$('#'+id+'').html();
$('#'+id+'').html('已添加到您的订单!');
$('#'+id+'').removeClass('btn-primary').addClass('btn-success');
setTimeout(函数(){
$('#'+id+'').html(旧html);
}, 2000);
}

我不认为任何旧函数都有资格成为jQuery效果队列的有效成员。我已经在一些函数调用中包装了您的代码。请查看该页上的其他示例以了解更多想法

功能添加到订单(el){
var old_html=$(el.html();
$(el.html('Added to your order!');
$(el)
.queue(函数(){
$(el).removeClass('btn-primary').addClass('btn-success').dequeue();
})
.延迟(2000年)
.queue(函数(){
$(el).html(old_html).dequeue();
});
}


第一学期
我不认为任何旧函数都有资格成为jQuery效果队列的有效成员。我已经在一些函数调用中包装了您的代码。请查看该页上的其他示例以了解更多想法

功能添加到订单(el){
var old_html=$(el.html();
$(el.html('Added to your order!');
$(el)
.queue(函数(){
$(el).removeClass('btn-primary').addClass('btn-success').dequeue();
})
.延迟(2000年)
.queue(函数(){
$(el).html(old_html).dequeue();
});
}


第一学期
你试过这个吗?你试过这个吗?很好:)但你可以给一个更简单的;)很好:)但你可以给出一个更简单的;)谢谢你接受我的回答!谢谢你接受我的回答!