1

我正在使用以下代码使带有类代码的任何跨度中的文本变为红色,其中包含文本“发送邀请失败”。这可行,但是该表是分页结果集的一部分,并且分页是通过 ajax 更新的,因此当他们更改结果页面时,红色会丢失。

如何使此代码以与 ajax 内容一起使用的方式工作。

//This works for setting red in the initial page load   
$('table span.code').each( function() {
    if( /(Failed to send invite)/.test($(this).html())) {
        $(this).css('color', 'red');
    }
});
4

2 回答 2

2

您是否尝试在将新内容写入页面时包含此代码?jQuery 不适用于页面的实时更新,它只运行一次(除非你另有说明)。

你总是可以把它变成一个函数,每次你需要遍历你的表时只运行这个函数。

于 2013-07-23T13:29:17.663 回答
0

ajax 请求刷新页面的一部分后,您必须重新绑定事件处理程序:

$().ready(function () {
    bindHandlers();

    function doAjaxCall() {
        $.ajax({
            ...some codes,
            success: function (result) {
                ...some codes
                bindHandlers();
            }
        });
    }

    function bindHandlers() {
        $('table span.code').each( function() {
            if( /(Failed to send invite)/.test($(this).html())) {
                $(this).css('color', 'red');
            }
        });
    }
});
于 2013-07-23T13:29:10.200 回答