ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сменить сценарий JS
  #1  
Старый 24.12.2009, 13:51
Аватар для ufalog
ufalog
Участник форума
Регистрация: 28.07.2007
Сообщений: 177
Провел на форуме:
274360

Репутация: 5
Отправить сообщение для ufalog с помощью ICQ
По умолчанию Сменить сценарий JS

делаю сайт http://www.egodesign.ru/ на нем стоит меню основанное на mootools... сейчас меню работает.... (нажимаеш на родителя и открывается подменю.)

и закрываются под категории только при повторном нажатии

а надо чтобы открывшееся подменю закрывалось пр открытии следующего


исходник - http://egoweb.ru/mod_mainmenu.rar


PHP код:

<?php
/**
* @package   yoo_mellow Template
* @version   1.5.0 2009-10-01 16:02:39
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) 2007 - 2009 YOOtheme GmbH
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

function 
YOOMenuAccordionDecorator(&$node$args) {

    
$yoomenu  = &YOOMenu::getInstance();
    
$params   $yoomenu->getParams();
    
$user     = &JFactory::getUser();
    
$menu     = &JSite::getMenu();
    
$active   $menu->getActive();
    
$path     = isset($active) ? array_reverse($active->tree) : null;

    
// remove child items deeper than end level
    
if (($args['end']) && ($node->attributes('level') >= $args['end'])) {
        
$children $node->children();
        foreach (
$node->children() as $child) {
            if (
$child->name() == 'ul') {
                
$node->removeChild($child);
            }
        }
    }

    if (
$node->name() == 'ul') {
        
// remove inaccessable items according to user rights
        
foreach ($node->children() as $child) {
            if (
$child->attributes('access') > $user->get('aid'0)) {
                
$node->removeChild($child);
            }
        }
        
        
// set order/first/last for li
        
$count count($node->children());
        foreach (
$node->children() as $i => $child) {
            if (
$i == 0$child->addAttribute('first'1);
            if (
$i == $count 1$child->addAttribute('last'1);
            
$child->addAttribute('order'$i 1);
        }
        
        
// set ul level
        
if (isset($node->_children[0])) {
            
$level $node->_children[0]->attributes('level') - $params->get('startLevel');
            
$css   'level' $level;
            
$node->attributes('class') ? $node->addAttribute('class'$node->attributes('class') . ' ' $css) : $node->addAttribute('class'$css);
        }
    }

    
// set item styling
    
if ($node->name() == 'li') {

        
$item        $menu->getItem($node->attributes('id'));
        
$item_params = new JParameter($item->params);
        
$sfx_params  = new YOOTemplateParameter($params->get('class_sfx'));    
        
$page_params = new YOOTemplateParameter($item_params->get('pageclass_sfx'));        
        
$level       $node->attributes('level') - $params->get('startLevel');
        
$images      $sfx_params->get('images') != 'off';
        
$color       $page_params->get('itemcolor''');
        
$css         'level' $level ' item' $node->attributes('order');
        
$span_css    '';

        if (
$color$css .= ' '.$color;
        if (
$node->attributes('first')) $css .= ' first';
        if (
$node->attributes('last')) $css .= ' last';
        if (isset(
$node->ul) && ($args['end'] == || $node->attributes('level') < $args['end'])) $css .= ' parent';
        if (isset(
$path) && in_array($node->attributes('id'), $path)) $css .= ' active';
        if (isset(
$path) && $node->attributes('id') == $path[0]) $css .= ' current';
        if (
$item->type == 'separator'$css .= ' separator';

        
// add a/span css classes
        
if (isset($node->_children[0])) {
            
$node->_children[0]->attributes('class') ? $node->_children[0]->addAttribute('class'$node->_children[0]->attributes('class') . ' ' $css) : $node->_children[0]->addAttribute('class'$css);
        }

        
// add accordion css class 
        
if (isset($node->ul[0]) && $item->type == 'separator' && $level == 1) {
            
$css .= ' toggler';
            
$node->ul[0]->addAttribute('class''accordion');
        }

        
// add item css classes
        
$node->attributes('class') ? $node->addAttribute('class'$node->attributes('class') . ' ' $css) : $node->addAttribute('class'$css);

        
// add item background image
        
if ($item_params->get('menu_image') && $item_params->get('menu_image') != -1) {
            if (isset(
$node->_children[0])) {
                if (
$images && isset($node->_children[0]->span[0])) {
                    
$img 'images/stories/'.$item_params->get('menu_image');
                    
$alt dirname($img).'/'.JFile::stripExt(basename($img)).'_alt.'.JFile::getExt($img);

                    
// check for alternate image
                    
if (JFile::exists(JPATH_ROOT.DS.$alt)) {
                        
$img $alt;
                    }
                    
                    
$node->_children[0]->span[0]->addAttribute('style''background-image: url('.JURI::base().$img.');');
                    
$span_css .= 'icon';
                }
                if (
$img $node->_children[0]->getElementByPath('img')) {
                    
$node->_children[0]->removeChild($img); // remove old item image
                
}
            }
        }

        
// add span css and subtitle span
        
if (isset($node->_children[0]) && isset($node->_children[0]->span[0])) {
            
$node->_children[0]->span[0]->addAttribute('class''bg '.$span_css);
            
$title $node->_children[0]->span[0];
            
$split explode('||'$title->data(), 2);
            if (
count($split) == 2) {
                
$span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'title'));
                
$span->setData(trim($split[0]));
                
$span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'subtitle'));
                
$span->setData(trim($split[1]));
            }
        }            
    }
    
    
// remove inactive child items except for accordion
    
if (!(isset($path) && in_array($node->attributes('id'), $path))) {
        if (isset(
$args['children']) && !$args['children'])    {
            
$children $node->children();
            foreach (
$node->children() as $child) {
                if (
$child->name() == 'ul') {
                    
                    
// dont remove children for accordion
                    
if (!$child->attributes('class') == 'accordion') {
                        
$node->removeChild($child);
                    }
                }
            }
        }
    }

    
$node->removeAttribute('id');
    
$node->removeAttribute('rel');
    
$node->removeAttribute('level');
    
$node->removeAttribute('access');
    
$node->removeAttribute('order');
    
$node->removeAttribute('first');
    
$node->removeAttribute('last');
}
 
Ответить с цитированием

  #2  
Старый 24.12.2009, 14:51
Аватар для LStr1ke
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

Репутация: 150
По умолчанию

Ну напиши отдельную функцию которая закрывает все выпадающие меню. и Вставь ее в начало функции открывания.

Пользователь нажимает на ссылку -> все закрывается -> выпадает выбранное им
 
Ответить с цитированием

  #3  
Старый 25.12.2009, 03:47
Аватар для ufalog
ufalog
Участник форума
Регистрация: 28.07.2007
Сообщений: 177
Провел на форуме:
274360

Репутация: 5
Отправить сообщение для ufalog с помощью ICQ
Smile

Цитата:
Сообщение от LStr1ke  
Ну напиши отдельную функцию которая закрывает все выпадающие меню. и Вставь ее в начало функции открывания.

Пользователь нажимает на ссылку -> все закрывается -> выпадает выбранное им

uгмс.... не подскажеш как? я просто слаб в js.....
 
Ответить с цитированием

народ помогите а....
  #4  
Старый 27.12.2009, 15:29
Аватар для ufalog
ufalog
Участник форума
Регистрация: 28.07.2007
Сообщений: 177
Провел на форуме:
274360

Репутация: 5
Отправить сообщение для ufalog с помощью ICQ
По умолчанию народ помогите а....

за небольшое вознаграждение даже можно....
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
**Как сменить IP, если провайдер не разрешает? Andres Анонимность 22 13.12.2009 16:04
Как сменить секретный вопрос на Yandex.mail? espacio E-Mail 4 08.09.2009 19:11
Сценарий весны Farad Болталка 1 12.03.2009 20:00
СЦЕНАРИЙ ТРЕТЬЕЙ ЕЖЕГОДНОЙ ПРЕМИИ МУЗ ТВ 2005 Майор Болталка 20 15.06.2005 13:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ