Есть простой код:
function downnon()
{
var a = document.getElementById('descripper');
if ( a.style.display == 'none' )
a.style.display = 'block'
else
if ( a.style.display == 'block' )
a.style.display = 'none';
};
(Для открытия закрытия блоков текста).
Локально код работает (при соответствующем html).
Никакими методами заставить его работать на друпал не могу.
Пытался подключить следующими методами:
drupal_add_js('code', 'inline') через вьювс/заголовок -- сыплется миллион ошибок(синтаксис). Не соображу куда запихнуть drupal_add_js(с модулями) - попробовал бы и это
Прописал в .info темы 'scripts[] = script.js' и оформил в виде script.js -- он подключается (в хроме в ресурсах виден, ну и визуально в ) но не работает
Вписывал его как html - тегами -через вьювсы/заголовки - нет не работает да и пишется не по месту, а в тело страницы.
Думаю это простой вопрос для сообщества, а у меня просто не хватает знаний..
HTML код вставляю на страницу через шаблоны прописав в поле Описание: -- вставляется прекрасно...
через вьювсы - перезапись с добавлением текста
Комментарии
а как у вас формируются блоки, на которые вешается обработчик?
Пытался сразу написать но форум "съел" код. Я вынес строки
'<h5><a class = "button" onclick = "downnon()">Описание:</a></h5><div id = descripper>'
в файл views-view-field--body.tpl.phpЯ правильно понял вопрос??
Страница формируется вьювсами, а к нужному блоку текста(который хочу скрывать/обнажать) цепляется descripper -- внутри него
<div id = descripper> блаблабла текст </div>
проблема у вас в том, что ваш джаваскрипт не видит всю DOM содержимого.
покажите весь код джаваскрипта плиз.
то есть файла. или сделайте атач. проще говоря- вас надо что бы джаваскрипт прогрузился после прогрузки dom модели вашего html
а так не пробовали -
<script type="text/javascript" src="/media/js/jquery-1.4.2.min.js"></script>
?а если в ноде, то просто
<script></script>
1.4.2 - и вылезут другие косяки ))) особенно если не сделать ноу конфликт версий. но все равно полезут косяки (на фронте).
для этой цели 1.3.2 более чем достаточно/
дайте полный код джаваскрипушного файла.
Это был полный код:
function downnon()
{
var a = document.getElementById('descripper');
if ( a.style.display == 'none' )
a.style.display = 'block'
else
if ( a.style.display == 'block' )
a.style.display = 'none';
};
Насколько я понимаю JQuery не используется
Оба файла я положил в гарланд. Шаблон пересканил во вьювсах, скрипт прописал в инфо гарланда. В конечной странице все формируется как надо(то есть код в нужные места доставляется), но.. не работает. Полностью согласен что что-то типа js не видит содержимого, но я не знаю как друпал строит страницы чтобы понять отчего так....
В ноду я пихал через вьювс/заголовки облачая и в php-теги и просто в формате html c тегами script
Я вобще-то 1.4.2.min.js привел в качестве примера, вместо него можно влепить любой файл. А если нужен код, то jquery
Кстати экспериментировал с
drupal_add_js('alert("Hello!")', 'inline');
работает на ура... . Я делаю вот так:{
var a = document.getElementById('descripper');
if ( a.style.display == 'none' )
a.style.display = 'block'
else
if ( a.style.display == 'block' )
a.style.display = 'none';
};', 'inline');
И получаю ошибки
Как я понимаю ошибки синтаксиса "Parse error: syntax error, unexpected T_STRING in /var/www/u2631278/public_html/blabla.com/includes/common.inc(1728) : eval()'d code on line 4"
ну верно.
можно просто поместить код в
$(document).ready(function(){
...
});
что за ошибки?
ну так на кавычки в своем коде посмотри
...
});
а это где?(понимаю что звучит идиотично) В смысле в моем скрипте код поместить в эту конструкцию?? Наврядли..
Судя по всему: Документ - Готов(полное дом дерево) и тогда уже - вперед..
А вместо function поставить мою downnon. так?
Работает:
{
$(".socialbutton").click(function(){
$("#descripper").animate({ opacity: "hide"}, "slow");
});
});
Как проявить уже разберусь сам - дело техники.
Огромное спасибо всем).
toggle - какая прелесть. Тут нужно писать - РЕШЕНО?
ахаха.
тоггле - да, это кстати решение ))
чето забыли про метод этот.
про документ реди - да, вы правильно думаете.