Создал скрипт menu.js
(function($){
$(document).ready(function(){
$('div#my_menu>ul>li>a').click(function() {
if ($(this).parent().find('ul').length) {
$(this).parent().find('ul').slideToggle(200);
return false;
}
});
});
})(jQuery);
$(document).ready(function(){
$('div#my_menu>ul>li>a').click(function() {
if ($(this).parent().find('ul').length) {
$(this).parent().find('ul').slideToggle(200);
return false;
}
});
});
})(jQuery);
Все отлично работало, но добавляю строку (чтобы при клике на нераскрытый пункт меню закрывался тот который уже был раскрыт):
(function($){
$(document).ready(function(){
$('div#my_menu>ul>li>a').click(function() {
if ($(this).parent().find('ul').length) {
$(this).parent().parent().find('li').close();
$(this).parent().find('ul').slideToggle(200);
return false;
}
});
});
})(jQuery);
$(document).ready(function(){
$('div#my_menu>ul>li>a').click(function() {
if ($(this).parent().find('ul').length) {
$(this).parent().parent().find('li').close();
$(this).parent().find('ul').slideToggle(200);
return false;
}
});
});
})(jQuery);
И все... не работает! Гугление нечего не дало, подскажите пожалуйста хоть какую сторону копать?
Комментарии
и не дало мануала по JS в седьмом друпале? Может вы порновидео скачать бесплатно гуглили?
Можно поконкретней я учусь...
мануал по JS в седьмом друпале дал мысль использовать:
//
})(jQuery);
Вот само меню:
<ul><li><a href="#" title="">Услуги юриста по хозяйственным делам</a>
<ul><li><a href="http://www.google.com.ua" title="">Досудебное урегулирование споров</a></li>
<li><a href="http://www.google.com.ua" title="">Взыскание задолженности</a></li>
<li><a href="http://www.google.com.ua" title="">Признание договора недействительным</a></li>
<li><a href="http://www.google.com.ua" title="">Составление,внесение изменений и разрыв договоров</a></li>
<li><a href="http://www.google.com.ua" title="">Обжалование договоров ипотеки</a></li>
<li><a href="http://www.google.com.ua" title="">Защита прав заёмщика</a></li>
<li><a href="http://www.google.com.ua" title="">Урегулирование налоговых споров</a></li>
<li><a href="http://www.google.com.ua" title="">Банкротство</a></li>
</ul></li>
<li><a href="#" title="">Составление юридических документов</a>
<ul><li><a href="http://www.google.com.ua" title="">Составление апелляционной жалобы</a></li>
<li><a href="http://www.google.com.ua" title="">Составление искового заявления (иска)</a></li>
<li><a href="http://www.google.com.ua" title="">Составление кассационной жалобы(кассации)</a></li>
<li><a href="http://www.google.com.ua" title="">Составление запроса (заявления)</a></li>
<li><a href="http://www.google.com.ua" title="">Составление официальных писем, жалоб</a></li>
<li><a href="http://www.google.com.ua" title="">Составление договоров</a></li>
<li><a href="http://www.google.com.ua" title="">Юридические консультации</a></li>
</ul></li>
<li><a href="#" title="">Абонентское юридическое обслуживание</a>
<ul><li><a href="http://www.google.com.ua" title="">Юридический аутсорсинг</a></li>
<li><a href="http://www.google.com.ua" title="">Юридический аудит</a></li>
</ul></li>
</ul></div>
js подключен в template.php строкой:
<?php
drupal_add_js(drupal_get_path('theme', 'corporateclean') . '/js/menu.js');
?>
http://www.lmgtfy.com/?q=drupal+7+javascript+manual
http://www.lmgtfy.com/?q=drupal+7+javascript+manual
Спасибо большое только я учусь не гуглить а использовать js, документацию читал но за два часа наверно все не осилю
http://api.jquery.com/?ns0=1&s=close%28%29
Что-то не видать такой функции.
Как же оно раньше работало?
Какую функцию использовать?
Так в коде, который работает и нет функции close();
Возьми оттуда примеры и используй без понимания. В чем проблема.
О
Откуда такая агрессия? Я не смог найти решение своей проблемы сам и задал вопрос на форуме в соответствующем разделе.
Где агрессия?
Вам печально от того, что вас никто не учит?
http://lurkmore.ru/%D0%93%D1%83%D1%80%D1%83
Вы вообще читали это?
Прочитал... но непонял то что мне нужно
Вместо $ поставьте везде jQuery.
А это зачем?
да у него не в этом проблема.
У мну был глюк на северке, не применялись скрипты, это помогло...
М, да, не так прочитал сообщение, увидел "не работает" и все
eq('')
http://api.jquery.com/eq/
или
http://api.jquery.com/eq-selector/
?
Хотя, он выберет только один li, а ТС видимо хочет обойти все li и закрыть их, только не понятно где у него проверка на то, что найденный li не является текущим. Заместо find() можно еще попробовать http://api.jquery.com/children.
Как понимаю хочется что-то типа такого http://vash-stomatolog.com/problems ?
Тогда вообще становится непонятным изобретение велосипеда, когда все уже создано dhtml_menu
Затем что в семёрке jQuery в noconflict() работает
Открыл пару случайных стандартных модулей из 7-ки:
Посмотрел код и не заметил ничего отличающегося от 6-ки. Так же все обернуто
(function ($) { })(jQuery);
и все селекторы начинаются с $().Может расскажите поподробнее в чем заключается его noconflict()?
Это замыкание, внутри этой функции можно долларом писать.
$('div#id').hide() вне замыкания вызовет ошибку, так (function ($) { $('div#id').hide();})(jQuery) так нет, и обратно, если хочется писать без замыкания, то писать надо jQuery('div#id').hide(). Так же, разработчики jQuery рекомендуют всё писать через замыкания, так как не знаешь в каком режиме будет jQuery, тру-стайл так сказать и кодинг-стандарт
Огромное спасибо за разъяснение!!! Пол дня сегодня потратил на то, что бы запустить скрипт! А заменил и все чудесным образом заработало))))
Ну вообще-то замыкания noconflict никак не связаны с друпалом в целом и с 7-кой в частности. То, что вы написали узнаешь, когда изучаешь jQuery. Думал, что в 7-ке какие-то особые условия для этого.