如何让.delegate()工作

时间:2011-02-08 15:13:06

标签: jquery ajax

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
});

1 个答案:

答案 0 :(得分:1)

很难说没有看到你的标记,但是因为你加载到main-container,我猜你想要这个:

$('#main-container').delegate('.projects', 'hover', function(){
    // and so on

现在,悬停事件(mouseenter / mouseleave)将触发.projects内的#main-container元素,无论它们何时被添加。