jQuery下实现等待指定元素加载完毕

本文介绍如何在JavaScript环境中,特别是使用jQuery时,监控页面元素是否由AJAX请求加载完成。针对jQuery3.0中某些用法的变动,提供了一种新的基于Promise的解决方案,允许用户等待元素加载成功或取消等待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在tempermonkey中,需要监控页面是否加载完成。
但是,页面中的一些元素是ajax请求的。
所以需要通过判断元素是否加载成功。

jQuery.fn.wait = function (selector, func, times, interval) {
    var _times = times || -1, //100次
    _interval = interval || 20, //20毫秒每次 
    _self = this,
    _selector = selector, //选择器
    _iIntervalID; //定时器id
    if( this.length ){ //如果已经获取到了,就直接执行函数
        func && func.call(this);
    } else {
        _iIntervalID = setInterval(function() {
            if(!_times) { //是0就退出
                clearInterval(_iIntervalID);
            }
            _times <= 0 || _times--; //如果是正数就 --
            
            _self = $(_selector); //再次选择
            if( _self.length ) { //判断是否取到
                func && func.call(_self);
                clearInterval(_iIntervalID);
            }
        }, _interval);
    }
    return this;
}

$(".otc-trade-list").wait(".otc-trade-list", function() {
    console.lo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值