[Решено] Вызов функции jquery в header.tpl

Добрый день, уважаемые.

Сегодня 5 по счету день, который я провожу без сна из за проклятья под названием «вызов функции». Очень прошу Вас помочь обрести мне покой.

Пытаюсь подключить к ls jquery галерею PikaChoose по примеру Фоторамы. Скачал js плагин, css плагина, собственно сам jquery. Инициализировал их в header.tpl в нужном порядке. (сначала кьуэрри, потом цсс, потом плагин) далее необходимо инициализировать функцию вызова плагина… По мануалам делается это в header.

В header.tpl вставляю:


<script language="javascript"> 
  $(document).ready( 
  function (){ 
  $("#pikame").PikaChoose(); 
  }); 
  </script>


В таком виде у меня плагин не работает. Понимаю, что собака зарыта в неправильном вызове функции. Скорее даже в вызове функции в неправильном месте.

<script language="javascript">

$(document).ready(
function() {
    $("#pikame").PikaChoose();
});</script>

Консоль Google Chrome выдает ошибку:
Uncaught TypeError: Object [object Object] has no method 'PikaChoose'

Если же создать, отдельный от ls, html файл в который в head будет подключено все тоже самое что у меня подключено в header.tpl и в этом-же html будет контент который должен обрабатываться плагином, то все работает.

Вопрос: Каким образом и главное Где?! вызывать подобную функцию для работоспособности плагина.

Так-же есть вопрос: В фотораме (на сайте фоторамы) в разделе подключение написано, что ее можно инициализировать:

<script>
  $(function() {
    $('#my-fotorama').fotorama();
  });
</script>


Но при создании фотоблоков по мануалу мы такого не делаем. Каким образом фоторама инициализируется в ls?

23 комментария

avatar
пожалуйста кат!
avatar
Режим телепата.
Подключили в шаблоне фотораму, а в яваскрипте хотите использовать PikaChoose
avatar
Да ну вы что, дружище… Не совсем дурак же. Конечно не так хорошо знаю ls как многие тут присутствующее, но вполне достаточно чтобы такой глупости не сделать. ;) Обижаете прям.
avatar
Я про то, что приводите код, который есть, чтобы люди не телепатили. Ниже вам видимо дали ответ, смотрели бы исходный код html, сами бы наверно увидели.
комментарий был удален
avatar
Шапка header.tpl:

<script type="text/javascript" src="{cfg name='path.static.skin'}/js/jquery-1.7.1.min.js"></script>
<link href="{cfg name='path.static.skin'}/css/gallery-styles/bottom.css" rel="stylesheet">
<script src="{cfg name='path.static.skin'}/js/jquery.pikachoose.js"></script>

<script language="javascript"> 
  $(document).ready( 
  function (){ 
  $("#pikame").PikaChoose(); 
  }); 
  </script>


Пути до css и js верные и они подгружаются. Но вот вызов функции ошибочен.
avatar
Не только вызов, а возможно отсутствие желания читать фак livestreet.ru/blog/sollutions/9962.html#q13
avatar
Если бы… В факе я это уже находил.
Нет, к сожалению, это не помогает. Пробовал я оборачивать этим тегом. Ничего не меняется.
avatar
а там не пробовать надо, а 100% оборачивать
avatar
Еще бы это хоть чем-то помогла справится с задачей — было бы вообще хорошо :)
avatar
ну телепатически никто вам не поможет.


<script language="javascript"> 
(function () {
  $ (document).ready (function () {
    $ ("#pikame").PikaChoose ();
  });
})(jQuery);
</script>
avatar
Спасибо за участи в теме. Вопрос решился.
комментарий был удален
avatar
Хочется заметить, что подобное происходит не только с вызовом функции для данного jquery плагина, но и для любого подобного, где необходима инициализация…
avatar
Вы дайте уше ссылку на проект с нерабочим кодом, яваскрипт можно заценить через браузер.
avatar
Локалхост у меня пока. Был бы проект в сети — давно бы ссылку дал.
avatar
Кто-то переопределяет $ и jQuery нужно вызывать в noConflict режиме.
Подробнее: api.jquery.com/jQuery.noConflict/
jQuery.noConflict();
(function($) { 
  $(function() {
    $(document).ready( 
  function (){ 
  $("#pikame").PikaChoose(); 
  }); 
  });
})(jQuery);

Попробуйте так.
avatar
Пока Вы писали, нашел подобное в пособиях по jquery на том-же сайте на который вы дали ссылку.
Спасибо!

Сделал конструкцию вида:

<script language="javascript">
        $.noConflict();
			jQuery(document).ready(function($) {
					$("#pikame").PikaChoose();
				});
		</script>


Теперь слава богу скрипт работает.
avatar
попробовал все манипуляции у меня не работает, так)
avatar
Скорее всего забыли добавить разрешение для ul id='' в джевиксе.
avatar
Спасибо, правда я совсем наб
Я не знаю как правильно там писать в этом джевиксе, чтобы разрешить ul id="
Можете помочь?
// вызов метода с параметрами
			array(
array('cut','a', 'img', 'i', 'b', 'u', 's', 'video', 'em','ul id="', 'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'ls', 'iframe', 'table','td','tr','tbody','th','blockquote','div', 'p','h3','div'),
),
// следующий вызов метода
			array(
				'a',
				array('title', 'href', 'rel' => '#text', 'name' => '#text', 'target' => array('_blank'))
			),
			// и т.д.
			array(
				'cut',
				array('name')
			),
			array(
                                'div',
                                array('class')
                        ),
						array(
                                'ul id="',
                                array('class')
                        ),

	
avatar
livestreet.ru/blog/sollutions/10030.html#q3

array(
                 'ul',
                array('id'=>'#text')
            ),
avatar
Благодарю вас за помощь!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.