I asked this question the other day并发现我应该使用.delegate()让jquery在ajax调用之后工作,但我无法弄清楚如何去做。在我尝试
后,Ajax完全停止工作所以我试过了:
$('.projects').hover(function(){
$defBox.stop(true, true)
.fadeToggle(1000)
.html('<p>Hover The links to see a description</p>');
});
并将其更改为:
$('.projects').delegate($defBox, "hover", function(){
$defBox.stop(true, true)
.fadeToggle(1000)
.html('<p>Hover The links to see a description</p>');
});
和:
$('.projects dl').delegate($defBox, "hover", function() {
.fadeIn(1000);
}, function() {
fadeOut(1000);
});
两者仍然无效。我做错了什么?
这也不适用于以太。
$('#main-content').load(toLoad, function() {
$("#foo").tinyscrollbar();
$("#bar").facebox();
// etc
});
答案 0 :(得分:1)
很难说没有看到你的标记,但是因为你加载到main-container
,我猜你想要这个:
$('#main-container').delegate('.projects', 'hover', function(){
// and so on
现在,悬停事件(mouseenter / mouseleave)将触发.projects
内的#main-container
元素,无论它们何时被添加。