jQuery将document.ready和ajaxComplete方法结合在一起用于相同的代码

时间:2017-07-11 05:00:59

标签: javascript jquery

想要在页面加载和ajax完成时应用相同的代码。以下是代码

$(document).ajaxComplete(function() {
    showHideBlock();
});

$(document).ready(function() {
    showHideBlock();
});

function showHideBlock() {
    if ($('.reservationDetails').length == 1) {
        $('.user-reservation-info').show();
    } else {
        $('.user-reservation-info').hide();
    }
}

还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用method chaining并缩短附加readyajaxComplete处理程序的代码。您可以通过将$('.user-reservation-info')存储在变量中来避免输入if..else两次。此外,由于您的$(document).ready(showHideBlock).ajaxComplete(showHideBlock); function showHideBlock() { var userInfo = $('.user-reservation-info'); $('.reservationDetails').length === 1 ? userInfo.show() : userInfo.hide(); } 代码非常简单,因此您可以使用ternary operator

$('.reservationDetails').length === 1

如果您只是在检查$('.reservationDetails').length是否与DOM中的任何元素匹配,您也可以在上面的代码中仅使用.reservationDetails替换length。但是,如果您特别需要 MATCH(MAX(Y13:AN13),Table2,0 为1,那么就无法做到这一点。