在单击按钮时,我要触发对执行某些Ajax(后端逻辑)操作的另一个div的单击,然后触发对按钮的实际单击。

我尝试了以下失败的尝试

$('#button').click(function(event) {
        $("#someDiv").click(); //at this point the ajax content will load..
        return true;
});

最佳答案

您可以使用布尔值保存状态并在#button上单击两次,仅在加载了ajax后才执行实际单击。
发出ajax请求时,您也可以禁用该按钮。

var ajaxLoaded = false;

$('#button').click(function(event) {
    if (!ajaxLoaded){
        $('#button').prop('disabled', true);
        $("#someDiv").click();
        return false;
    }
    ajaxLoaded = false;
    $('#button').prop('disabled', false);
    return true;
});


然后在ajax请求的成功回调中,更新ajaxLoaded的值并触发点击

ajaxLoaded = true;
$('#button').click();


Fiddle Example(使用setTimeout模拟一些异步延迟)

09-10 11:28
查看更多