Как заставить .delegate () работать - PullRequest
1 голос
/ 08 февраля 2011

Я задал этот вопрос на днях и обнаружил, что должен использовать .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 Ответ

1 голос
/ 08 февраля 2011

Трудно сказать, не видя вашей разметки, но, поскольку вы загружаете в main-container, я предполагаю, что вы хотите это:

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

Теперь события наведения (mouseenter / mouseleave) будут срабатывать для .projects элементов, которые находятся внутри #main-container независимо от того, когда они были добавлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...