Jquery加载然后编辑加载的内容

Mvc*_*Jon 5 jquery

我正在使用 Jquery 加载,然后一旦内容加载到 div 中,我想将一些标签更改为语言相关变量。

我的问题是我必须使用 settimeout 来让脚本等待足够长的时间以便元素准备好编辑。

当我使用回调函数参数时,我想要编辑的元素显然还没有准备好,因为它们没有设置。我讨厌使用 settimeout,因为这将每个人限制为最慢的设置,并且总是有些连接会比这更慢。

显然,回调方法只是意味着ajax方法取回了html,但它并不能确保导入的元素实际上在dom中准备好了。

有人有想法吗?

当前代码

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds());
...
...
setTimeout("timedbasket();", 500);
...
...
function timedbasket() {
    alert($('#basketlegend'));
    $('#basketlegend').html(basketlabel);
}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds(), "", timedbasket());
Run Code Online (Sandbox Code Playgroud)

这是篮子.htm 源代码

<tr>
    <td>
        <div id="basket">
            <fieldset>
                <legend><span id="basketlegend"></span></legend>
                <table id="baskettbl" border="0" class="basket-table">
                    <tbody>
                        <tr class='total'>
                            <td>
                                <span id="empty"></span>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </fieldset>
        </div>
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

tva*_*son 2

使用回调参数进行加载并将代码放入回调中。

$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds(),null,
    function() {
           ...do stuff here after #content-basket is finished loading...
});
Run Code Online (Sandbox Code Playgroud)

查看 jQuery 后,可以肯定的是响应是在调用任何回调之前注入的,因此应该更新 DOM。您是否有可能正在重复使用 jQuery 对象,这些对象可能引用以前存在但已被负载替换的 DOM 元素?