jQuery:用on()替换.livequery()

时间:2014-08-20 16:32:31

标签: jquery livequery

我有以下jQuery / LiveQuery代码。

它等待一个“highlight_this”类出现在页面的某个位置,然后它突出显示一个表行,以引起对刚刚更改过的数据行的注意。

因此,用户选择编辑一行数据,我们通过ajax更新数据库,并将更改的行写回.highlight_this应用于<tr>的页面。

我正在使用jQuery 1.11.1,因为我仍然需要支持IE7。以下在Fi​​refox中运行良好,但是在IE7 / 8/9中,只有在页面上单击鼠标才会触发,所以我猜我需要停止使用LiveQuery并切换到.on()。

// waits for the tr.highlight_this to appear, highlights th/td within, then returns to previous colour
//---------------------------------------------
$('.highlight_this', 'table').livequery(
    function() {
        var color = $('td', $(this)).css('background-color');
        $('th, td', $(this)).animate({ backgroundColor: '#ffffcc' }, 0 ).delay(1000).animate({ backgroundColor: color }, 5000, function(){ $(this).removeClass('highlight_this'); $(this).removeAttr('style'); })
});

如何使用.on()复制此行为?我似乎无法弄清楚如何以这种方式使用.on()。

亲切的问候, 布拉德利

1 个答案:

答案 0 :(得分:0)

试试这个 - :

 $(document).on("visible", "[class*='.highlight_this, table']", function() {
     var color = $('td', $(this)).css('background-color');
     $('th, td', $(this)).animate({
         backgroundColor: '#ffffcc'
     }, 0).delay(1000).animate({
         backgroundColor: color
     }, 5000, function() {
         $(this).removeClass('highlight_this');
         $(this).removeAttr('style');
     })
 });

来源 - : https://stackoverflow.com/a/11701445/6590082