2012-06-14 2 views
5

Я получаю этот Uncaught TypeError на новом веб-сайте, который я создаю, но я не могу решить, что вызывает ошибку.Uncaught TypeError: Object [object Object] не имеет метода 'apply'

Я воссоздал проблему по ссылке ниже, если вы посмотрите на консоль JS браузеров, вы увидите ошибку, но ничего больше не произойдет.

http://jsfiddle.net/EbR6D/2/

Код:

$('.newsitem').hover(
$(this).children('.text').animate({ height: '34px' }), 
$(this).children('.text').animate({ height: '0px' }));​ 
+0

Где? .text' в HTML? – gdoron

+0

извините, это должно было прочитать .title –

ответ

5

Обязательно оберните тех асинхронных обратных вызовов:

$('.newsitem').hover(
    function() { 
     $(this).children('.title').animate({height:'34px'}); 
    }, function() { 
     $(this).children('.title').animate({height:'0px'}); 
    } 
); 
​ 
3

Понадобится:

.hover(function(){ ... }); 

согласно documentation.

+1

lol Не могу поверить, что я смотрел на этот код больше минуты и не заметил, что он не передает функцию: P – Esailija

+0

Спасибо, знал, что это будет очевидно. но я просто не мог этого видеть. –

2

Вы упускаете function ...

$('.newsitem').hover(
    $(this).children('.text').animate({height:'34px'}), 
    $(this).children('.text').animate({height:'0px'}) 
); 

To:

$('.newsitem').hover(function() { 
    $(this).children('.text').animate({ 
     height: '34px' 
    }); 
}, function() { 
    $(this).children('.text').animate({ 
     height: '0px' 
    }); 
});​ 
​ 

И в $(this).children('.text'), не выбирая ничего.

0

использование слайд-анимации для обработки Hight из .text класса.

$('.newsitem').hover(function() { 
    $(this).children('.text').slideToggle(); 
});​ 
​ 
Смежные вопросы