jQuery里ajax和hover的综合运用怎么无效呢?

[test.jsp代码]
...

<script src="js/test.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/test.css"/>

...

店名

[test.css代码]
.hover{
cursor: pointer;
background-color: red;
}

[test.js代码]
$(document).ready(function(){
$.get('getRestaurant.do?',function(data){
$('#my_data .data').empty();
$(data).find('name').each(function(){
var html = '

';
html += $(this).text() + "";
$('#my_data .data').append(html);
});
});
});

$(document).ready(function() {
$('#my_data .data td').hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
});

各位大虾,帮小弟看看为什么hover没有效果呢?

可能是因为ajax请求是异步的,后面的hover绑定在ajax请求返回前就执行了,所以无效。你可以用jquery 1.3里面的live来绑定事件,或者在ajax里的请求回调函数里面绑定普通的hover函数。

[code="html"]

店名

[/code]
这里的tbody里面的td是你贴出了时省略了,还是你本来就没有,如果没有的话,那
[code="javascript"]
$(document).ready(function() {
$('#my_data .data td').hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
});
[/code]
这里面的“#my_data .data td”肯定没有,自然就没有效果。
我测试时,加了td到里面,有hover的效果,没问题。

那你在Firebug下看看,你请求回来的html到底是不是附加到tbody上去了?