Плагин окна с затенением. Ошибка $(document).ready is not a function

sequencer

Новичок
Наверно причина ламерская. Но объясните плиз в чем фишка.

Сайт на вордпресс. jQuery подгружаю так: скачал файл jquery-1.6.1.min.js с jquery.com и подключил его кодом
PHP:
<script type="text/javascript" src="http://сайт/jquery/jquery.js"></script>
(я его переименовал и положил в указанную папку.)
Так что не подкопаешься.

Далее, вставил на страницы код плагина окна с затенением, отсюда: http://habrahabr.ru/blogs/jquery/57466/

Вместо открытия окна появляется указанная в теме ошибка.
$(document).ready is not a function

Куда копать?
 

craz

Нестандартное звание
jQuery(document).ready(function (){
тут пишешь код использующий jQuery
})
 

sequencer

Новичок
Не пашет. Та же ошибка.

Сделал так.

PHP:
<script type="text/javascript" src="http://сайт/jquery/jquery.js"></script>
<script type="text/javascript">
// ****************************** далее идет код плагина попапа ************************************
jQuery(document).ready(function (){
//open pop-up
function showPopup(popup_type)
{
  //when IE - fade immediately
  if($.browser.msie)
  {
   $('#opaco').height($(document).height()).toggleClass('hidden');
  }
  else
  //in all the rest browsers - fade slowly
  {
   $('#opaco').height($(document).height()).toggleClass('hidden').fadeTo('slow', 0.7);
  }

  $('#popup')
   .html($('#popup_' + popup_type).html())
   .alignCenter()
   .toggleClass('hidden');

  return false;
}
//additional properties for jQuery object
$(document).ready(function(){
  //align element in the middle of the screen
  $.fn.alignCenter = function() {
   //get margin left
   var marginLeft = Math.max(40, parseInt($(window).width()/2 - $(this).width()/2)) + 'px';
   //get margin top
   var marginTop = Math.max(40, parseInt($(window).height()/2 - $(this).height()/2)) + 'px';
   //return updated element
   return $(this).css({'margin-left':marginLeft, 'margin-top':marginTop});
  };
});
//close pop-up box
function closePopup()
{
  $('#opaco').toggleClass('hidden').removeAttr('style');
  $('#popup').toggleClass('hidden');
  return false;
}
$.fn.togglePopup = function(){
   //detect whether popup is visible or not
   if($('#popup').hasClass('hidden'))
   {
    //hidden - then display
    //when IE - fade immediately
    if($.browser.msie)
    {
     $('#opaco').height($(document).height()).toggleClass('hidden');
    }
    else
    //in all the rest browsers - fade slowly
    {
     $('#opaco').height($(document).height()).toggleClass('hidden').fadeTo('slow', 0.7);
    }

    $('#popup')
     .html($(this).html())
     .alignCenter()
     .toggleClass('hidden');
   }
   else
   {
    //visible - then hide
    $('#opaco').toggleClass('hidden').removeAttr('style');
    $('#popup').toggleClass('hidden');
   }
  };
  $.fn.alignCenter = function() {
   //get margin left
   var marginLeft = - $(this).width()/2 + 'px';
   //get margin top
   var marginTop = - $(this).height()/2 + 'px';
   //return updated element
   return $(this).css({'margin-left':marginLeft, 'margin-top':marginTop});
  };
  //when IE - fade immediately
    if($.browser.msie)
    {
     $('#opaco').height($(document).height()).toggleClass('hidden')
          .click(function(){$(this).togglePopup();});
    }
    else
    //in all the rest browsers - fade slowly
    {
     $('#opaco').height($(document).height()).toggleClass('hidden').fadeTo('slow', 0.7)
          .click(function(){$(this).togglePopup();});
    }
// ******************************************** вызов окна сразу после загрузки ***************************************
 showPopup('first');
})
</script>

и далее в хтмл код, в соответствии с инструкцией к плагину:

<div id="opaco" class="hidden"></div>
<div id="popup" class="hidden"></div>
<div id="popup_first" class="hidden">
 <div class="bug">
текст окна
 </div>
</div>
 

craz

Нестандартное звание
фаир баг стоит? посмотри какая ошибка
 

sequencer

Новичок
Сделал все как в примере http://vladibakh.narod.ru , ошибка перестала вылезать, но ее заменила другая:
$("#popup_first") is null

В коде есть див с id "popup_first"
Вызываю же я методы не по событию а так:
PHP:
jQuery(document).ready(function (){
 $('#popup_first').togglePopup();
})
рассуждая так, что ready выполняется по завершению загрузки страницы, и тут же должен открыться попап.
На сайте примера по нажатию ссылки строкой $('#popup_bug').togglePopup(); открывается попап с id = popup_bug
я же только изменил айди и способ вызова.

Куда теперь копать? :)
файрбаг ничего не показывает
 

tz-lom

Продвинутый новичок
мож у тебя ещё и прототип используется?
замени $ на jQuery или оберни весь код использующий jQuery в замыкание

Код:
(function($){
....
})(jQuery);
 

sequencer

Новичок
Один хрен.
Сделал и так
PHP:
(function($){
....
})(jQuery);
и затем подсмотрел на другом сайте как всё устроено
PHP:
(function($){
....
})(window.jQuery);
все то же.
нашёл рекомендацию: чтобы избежать возможных конфликтов с другим кодом вордпресса или его плагинов, нужно вызывать функцию $.noConflict() . Сделал, ничего не дало.
 

tz-lom

Продвинутый новичок
PHP:
jQuery(document).ready(function (){
 jQuery('#popup_first').togglePopup();
})
если то что выше не помогло то и это не поможет
sequencer
бери консоль ошибок и отладчик,смотри какие ошибки у тебя при загрузке страницы,что в переменных jQuery и $
если всё ок запускай дебагер и в построчном режиме смотри что происходит в твоих скриптах

P.S.
а может ты просто togglePopup забыл подключить?
 

cDLEON

Онанист РНРСlub
$("#popup_first") is null
Значит, что возврат из функции = Null, а если у него это выполняется в jQuery(document).ready, то должно прокатить.
Скорее всего, он просто по твоим советам, что то не правильно делает.
 
Сверху