jQuery等待元素属性具有值

jQuery等待元素属性具有值,jquery,wait,Jquery,Wait,我有一个元素 <span id="current" data=""></span> 我想执行另一个函数,但在该函数中,我想等待属性data不等于空。 我正在查看以下内容: 但我更喜欢使用默认jQuery来实现这一点 我该怎么做?如果您能够将更改为,您将能够使用jQuery的事件,这将使您的生活更加轻松 <input id="current" value="" type="hidden" /> 您可以使用超时来定期检查该值是否不再为空 注1:我将您的spa

我有一个元素

<span id="current" data=""></span>
我想执行另一个函数,但在该函数中,我想等待属性
data
不等于空。 我正在查看以下内容: 但我更喜欢使用默认jQuery来实现这一点


我该怎么做?

如果您能够将
更改为
,您将能够使用jQuery的事件,这将使您的生活更加轻松

<input id="current" value="" type="hidden" />

您可以使用超时来定期检查该值是否不再为空

注1:我将您的span更改为imput,以允许您在JS FIDLE中更新它,但如果是span,代码将正常工作

注2:这是一个递归函数,它在休眠2秒后调用自身重新检查值。如果你正在实施这一点,你应该考虑永远运行,并在某些情况下清理或停止呼叫

var doSomethingOnceValueIsPresent = function () {
    if ($('#current').val() != '')
    {
        alert('something!');
    }
    else
    {
        setTimeout(function(){
            doSomethingOnceValueIsPresent()
            }, 2000);
    }
};

doSomethingOnceValueIsPresent();

您可以轮询数据的值:

function check() {
    if (!$('#current').attr('data')) {
        return setTimeout(check, 1000);
    }

    // do work here
}

check();

您的AJAX功能使用了什么?您使用的是$.post、$.get还是$.ajax?您可以从AJAX调用的success函数中调用第二个函数吗?为什么不能更改该函数?它来自图书馆吗?代码是什么?这是一个相当长的函数,设置了很多变量,然后执行了
$.ajax({type:“GET”
。我会使用回调来获得ajax成功;如果不能,那么在span上钩住更改事件显示问题中的
$.ajax(…)
块。
var doSomethingOnceValueIsPresent = function () {
    if ($('#current').val() != '')
    {
        alert('something!');
    }
    else
    {
        setTimeout(function(){
            doSomethingOnceValueIsPresent()
            }, 2000);
    }
};

doSomethingOnceValueIsPresent();
function check() {
    if (!$('#current').attr('data')) {
        return setTimeout(check, 1000);
    }

    // do work here
}

check();