2015-02-05 3 views
0

Скрипт работает отлично, но показывающийJavaScript работает нормально, но показывает ошибку в консоли

Type Error: $(...) is not a function in firebug console.

Мой сценарий, как показано ниже

<script type="text/javascript"> 

$(function() { 

    var $container = $('.answer'); 
    var $trigger = $('.ques'); 

    $container.hide(); 
    $trigger.first().addClass('active').next().show(); 

    var fullWidth = $container.outerWidth(true); 

    $trigger.on('click', function(e) { 
     if($(this).next().is(':hidden')) { 
      $trigger.removeClass('active').next().slideUp(300); 
      $(this).toggleClass('active').next().slideDown(300); 
     } 
     e.preventDefault(); 
    }); 
})(); 
</script> 
+5

Вам не нужен последний набор круглых скобок: '})();' – melancia

+0

@MelanciaUK Я думаю, что последние один '()' только! –

+0

Спасибо, за быстрый ответ: P Это сработало. –

ответ

4

$() вызов возвращает объект JQuery, который содержит ссылку на doucment объект , так что это не функция. Таким образом, вызывая () в конце $()(), вы получаете сообщение об ошибке.

Ваш код работает, потому что ошибка возникает после регистрации обработчика dom, поэтому даже если вызов вызвал ошибку, обработчик dom готов к работе, когда он готов.

Демо: Fiddle

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