javascript - jQuery 将 document.ready 和 ajaxComplete 方法组合在一起以获得相同的代码

标签 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();
    }
}

还有其他更好的方法吗?

最佳答案

您可以使用method chaining并缩短附加 readyajaxComplete 处理程序的代码。您可以通过将其存储在变量中来避免输入两次 $('.user-reservation-info') 。另外,由于您的 if..else 代码非常简单,因此您可以使用 ternary operator .

$(document).ready(showHideBlock).ajaxComplete(showHideBlock);

function showHideBlock() {
    var userInfo = $('.user-reservation-info');
    $('.reservationDetails').length === 1 ? userInfo.show() : userInfo.hide();
}

您还可以将上述代码中的 $('.reservationDetails').length === 1 替换为 $('.reservationDetails').length,如果您只是为了检查 .reservationDetails 是否与 DOM 中的任何元素匹配。但是,如果您特别需要 length 为 1,则无法完成此操作。

关于javascript - jQuery 将 document.ready 和 ajaxComplete 方法组合在一起以获得相同的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025766/

相关文章:

javascript - 打破 promise 链的好方法是什么?

javascript - Apache2 虚拟主机错误

javascript - Shadowbox 的 buildObject() 方法在哪里?

jQuery折叠褪色div和展开动画问题

javascript - 在 Angular 6 中一一处理多个 http 响应

javascript - 了解搜索表单的 jQuery 实现

javascript - 使用Redux(Redux-Saga)的错误信息提示

javascript - 通过来自动态输入的 ajax 请求发送数据

javascript - 在 jQuery 中的表上应用多个选择过滤器

javascript - $(document).ready 不要在 IE 中加载