由于AJAX延迟,jQuery元素设置为隐藏,无法捕获

时间:2015-03-27 20:08:08

标签: jquery ajax woocommerce

我正在使用以下代码来监控两个选择菜单上的更改事件。基于所做的选择确定是否显示第三个元素。

因为.single_variation_wrap首先用AJAX更新文本然后切换显示,如果我不等待一秒钟,'。single_variation_wrap`的可见性不会在正确的时间被捕获。

所以我设置延迟让AJAX触发并更新文本,然后切换元素显示,直到所有完成条件触发并查看元素是隐藏还是可见。

是否有一个jQuery方法来监控AJAX完成,这样可以更快完成?网络 - XHR下的开发工具中没有任何内容。

$("#interface, #pa_input-current").change(function() {
    var wto;
    wto = setTimeout(function() {
        if ($(".single_variation_wrap").is(":visible")) {
            alert('visible');
        }
        else {
            alert('hidden');
        }
    }, 1000);
});

1 个答案:

答案 0 :(得分:0)

你可以通过使用成功函数来做到这一点。

正在使用的成功函数示例:

$("button").click(function(){
    $.ajax({url: "demo_test.txt", success: function(result){
        if ($(".single_variation_wrap").is(":visible")) {
            alert('visible');
        } else {
            alert('hidden');
        }
    }});
});