2011-02-08 2 views
1

I asked this question the other day и узнал, что должен использовать .delegate(), чтобы заставить jquery работать после вызова ajax, но я не могу понять, как это сделать. Ajax просто перестает работать вообще после того, как я попыталсяКак получить .delegate() для работы

Так что я пробовал:

$('.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

Что случилось с .fadeIn ('1000); и .fadeOut ('1000) ;? Эти backticks не принадлежат. Опечатка? –

+0

Это была опечатка .. – nowayyy

ответ

1

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

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

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

+0

Итак, я должен выбрать оболочку, которая загружает все в ней, а затем делегирует ее? – nowayyy

+0

@ Триппи, если я понимаю тебя, да. Способ '.delegate()' работает в том, что он помещается в контейнер. Когда элементы внутри контейнера получают событие, элемент сравнивается с селектором '.projects' (в этом случае). Если элемент сопоставлен с селектором, вызывается обработчик. – user113716

+0

Хорошо, я попробую это позже, но еще один вопрос, могу ли я просто изменить .hover(), делегировать и не добавлять другую функцию? Как и в этом, требуется ли это? 'function() { .fadeIn ('1000); }, function() {' – nowayyy

Смежные вопросы