2

可能重复:
如何将函数绑定到通过 Ajax 加载的元素

在我的应用程序中,我想在某个单元格的鼠标悬停上填充信息面板并突出显示该单元格,以便用户可以看到哪个单元格。我使用了以下 js 和 css,这对于首次加载页面时存在的单元格效果很好

$(document).ready(function(){
    $("table1 td").hover(function(){
    $("table1 td").removeClass('highlight');
    $(this).addClass('highlight');
    });
});

并突出显示

.highlight{
    border-style:outset;
    border-width:5px;
    border-color:#0000ff;
}

但在我的应用程序中,table1 td 由 wicket listview 生成,并在用户进行搜索时通过 Ajax 更新。在 Ajax 更新之后,这些 js 代码没有任何效果。我怎样才能让那些js代码在Ajax更新后仍然有效?我真的很感激任何帮助!

4

2 回答 2

1

对不起,如果你想使用bind函数,你应该使用它。jQuery 不支持悬停。

$(selector).bind('mouseenter', function () {alert('hover'); });
$(selector).bind('mouseleave', function () {alert('hover'); });
于 2012-07-09T13:34:49.147 回答
0

Ajax 会更新你的表,所以你不应该把它写在 ready 函数中。这里有两点:

1)。写在Ajax成功函数中。

$.ajax(function () {
....,
....,
success: funciton () {
$("table1 td").hover(function(){
$("table1 td").removeClass('highlight');
$(this).addClass('highlight');
});
}
});

2)。使用绑定功能。

$("table1 td").bind('hover', function(){
$("table1 td").removeClass('highlight');
$(this).addClass('highlight');
});
于 2012-07-09T13:30:00.133 回答