Jump to content

Recommended Posts

Всем привет!

Такая вот проблемка, помогите, пожалуйста.

Пытаюсь создать дополнительное выпадающее меню товаров.

Проблема в том, что при подключении javascript или jquery к обоим менюшкам они работают только на первом.

Как исправить эту проблему?

Link to post
Share on other sites

Всем привет!

Такая вот проблемка, помогите, пожалуйста.

Пытаюсь создать дополнительное выпадающее меню товаров.

Проблема в том, что при подключении javascript или jquery к обоим менюшкам они работают только на первом.

Как исправить эту проблему?

 

Здравствуйте! У меня тоже такая проблема. Я сажаю огурцы в унитазе, а они корни в раковине пускают. В чем проблема?)

 

PS: Это не форум экстрасенсов. 

Покажите код и сайт (если есть возможность) 

Link to post
Share on other sites

Помню я схожий вопрос задавал года 4 назад...

Схожий с чем - с вопросом про меню или вопросом про огурцы? Ссылочку бы дали...
Link to post
Share on other sites

<!DOCTYPE html>
{*
Общий вид страницы
Этот шаблон отвечает за общий вид страниц без центрального блока.
*}
<html>
<head>
<base href="{$config->root_url}/"/>
<title>{$meta_title|escape}</title>

{* Метатеги *}
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="{$meta_description|escape}" />
<meta name="keywords" content="{$meta_keywords|escape}" />
<meta name="viewport" content="width=1024"/>
<meta name="cypr-verification" content="a2b5435755015081f78f9b9ef3433820"/>

{* Канонический адрес страницы *}
{if isset($canonical)}<link rel="canonical" href="{$config->root_url}{$canonical}"/>{/if}

{* Стили *}
<link href="design/{$settings->theme|escape}/css/style.css" rel="stylesheet" type="text/css" media="screen"/>
<link href="design/{$settings->theme|escape}/images/favicon.ico" rel="icon" type="image/x-icon"/>
<link href="design/{$settings->theme|escape}/images/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="design/{$settings->theme|escape}/css/nivo-slider.css" rel="stylesheet" type="text/css" media="screen"/>
<link href="design/{$settings->theme|escape}/css/default.css" rel="stylesheet" type="text/css" media="screen"/>

{* JQuery *}
<script src="js/jquery/jquery.js" type="text/javascript"></script>


<script type="text/javascript" src="design/{$settings->theme|escape}/js/jscroller-0.4.js"></script>

{* Всплывающие подсказки для администратора *}
{if $smarty.session.admin == 'admin'}
<script src ="js/admintooltip/admintooltip.js" type="text/javascript"></script>
<link href="js/admintooltip/css/admintooltip.css" rel="stylesheet" type="text/css" />
{/if}

{* Ctrl-навигация на соседние товары *}
<script type="text/javascript" src="js/ctrlnavigate.js"></script>

{* Аяксовая корзина *}
<script src="design/{$settings->theme}/js/jquery-ui.min.js"></script>
<script src="design/{$settings->theme}/js/ajax_cart.js"></script>

{* js-проверка форм *}
<script src="js/baloon/js/baloon.js" type="text/javascript"></script>
<link href="js/baloon/css/baloon.css" rel="stylesheet" type="text/css" />

{* Автозаполнитель поиска *}
{literal}
<script src="js/autocomplete/jquery.autocomplete-min.js" type="text/javascript"></script>
<style>
.autocomplete-suggestions{
background-color: #ffffff;
overflow: hidden;
border: 1px solid #e0e0e0;
overflow-y: auto;
}
.autocomplete-suggestions .autocomplete-suggestion{cursor: default;}
.autocomplete-suggestions .selected { background:#F0F0F0; }
.autocomplete-suggestions div { padding:2px 5px; white-space:nowrap; }
.autocomplete-suggestions strong { font-weight:normal; color:#3399FF; }
</style>
<script>
$(function() {
// Автозаполнитель поиска
$(".input_search").autocomplete({
serviceUrl:'ajax/search_products.php',
minChars:1,
noCache: false,
onSelect:
function(suggestion){
$(".input_search").closest('form').submit();
},
formatResult:
function(suggestion, currentValue){
var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
return (suggestion.data.image?"<img align=absmiddle src='"+suggestion.data.image+"'> ":'') + suggestion.value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
}
});
});
</script>

<script type="text/javascript">

$(document).ready(function(){



// Add Scroller Object

$jScroller.add("#scroller_container","#scroller","left",10, true);


// Start Autoscroller
$jScroller.start();
});
</script>

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter26364255 = new Ya.Metrika({id:26364255,
clickmap:true,
trackLinks:true,
accurateTrackBounce:true});
} catch(e) { }
});

var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f, false);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<!-- /Yandex.Metrika counter -->


<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>



<!-- menu -->

<script type="text/javascript">
$(function() {

var menu2_ul = $('.menu2 > li > ul'),
menu2_a = $('.menu2 > li > a');

menu2_ul.hide();

menu2_a.click(function(e) {
e.preventDefault();
if(!$(this).hasClass('active')) {
menu2_a.removeClass('active');
menu2_ul.filter(':visible').slideUp('normal');
$(this).addClass('active').next().stop(true,true).slideDown('normal');
} else {
$(this).removeClass('active');
$(this).next().stop(true,true).slideUp('normal');
}
});

});
</script>

<!--/ menu -->

{/literal}


</head>
<body>

<!-- Верхняя строка -->
<div id="top_background">
<div id="toptop">


<!-- Вход пользователя -->
<div id="account">
<img id="ai" src="design/{$settings->theme|escape}/images/key.png">
{if $user}
<span id="username">
<a href="user">{$user->name}</a>{if $group->discount>0},
ваша скидка — {$group->discount}%{/if}
</span>
<a id="logout" href="user/logout">выйти</a>
{else}
<a id="login" href="user/login">Вход</a> |
<a id="register" href="user/register">Регистрация</a>
{/if}
</div>
<!-- Вход пользователя (The End)-->

<!-- Корзина -->
<div id="cart_informer">
<img id="cii" src="design/{$settings->theme|escape}/images/nothing.png">
{* Обновляемая аяксом корзина должна быть в отдельном файле *}
{include file='cart_informer.tpl'}
</div>
<!-- Корзина (The End)-->

</div>
<div id="top">

<!-- Шапка -->
<div id="header">
<a href="/"><img id="avtolog" src="design/{$settings->theme|escape}/images/avto.png" title="{$settings->site_name|escape}" alt="{$settings->site_name|escape}"/></a>

<div id="logo">
<a href="/"><img src="design/{$settings->theme|escape}/images/logo.png" title="{$settings->site_name|escape}" alt="{$settings->site_name|escape}"/></a>
</div>



</div>
<!-- Шапка (The End)-->


<!-- Меню -->
<div id="dmenu">
<ul id="menu">
<li>
<a href="/">О компании</a>
</li>


<!-- Меню каталога -->

{* Рекурсивная функция вывода дерева категорий *}
{function name=categories_tree}
{if $categories}
<ul>
{foreach $categories as $c}
{* Показываем только видимые категории *}
{if $c->visible}
<li>
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if}
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->meta_title|escape}</a>
{categories_tree categories=$c->subcategories}
</li>
{/if}
{/foreach}
</ul>
{/if}
{/function}
{categories_tree categories=$categories}

<!-- Меню каталога (The End)-->

{foreach $pages as $p}
{* Выводим только страницы из первого меню *}
{if $p->menu_id == 1}
<li {if $page && $page->id == $p->id}class="selected"{/if}>
<a data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a>
</li>
{/if}
{/foreach}
</ul>
</div>
<!-- Меню (The End) -->
</div>


<div id="top-cent">
<div id="Dsearch">

<!-- Поиск-->
<div id="search">
<form action="products">
<input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск товара"/>
<input class="button_search" value="Найти" type="submit" />
</form>
<div id="searshTT">
</div>
</div>
<!-- Поиск (The End)-->


<div id="scroller_container">
<div id="scroller">

<!-- Меню блога -->
{* Выбираем в переменную $last_posts последние записи *}
{get_posts var=last_posts limit=5}
{if $last_posts}
<div id="blog_menu">
{foreach $last_posts as $post}
<ul>
<li data-post="{$post->id}">  {$post->date|date} <a href="blog/{$post->url}">{$post->name|escape}</a></li>
</ul>
{/foreach}
</div>
{/if}
<!-- Меню блога (The End) -->

</div>
</div>

</div>



</div>


</div>
<!-- Верхняя строка (The End)-->

<div class="slider-wrapper theme-default">
<div class="ribbon"></div>
<div id="slider" class="nivoSlider">
{foreach name=page from=$pages item=p}
{if $p->menu_id == 3}
<a href="{if $p->link}{$p->link}{else}{$p->url}{/if}"><img src="files/pages/{$p->image}" alt="" title="{$p->meta_description|escape}" /></a>
{/if}
{/foreach}
</div>
</div>
<script type="text/javascript" src="design/{$settings->theme|escape}/js/jquery.nivo.slider.pack.js"></script>
<script type="text/javascript">

var now=new Date()
var num=(now.getSeconds())%10
var num=num+1

$(window).load(function() {
$('#slider').nivoSlider({
effect: 'random',
startSlide: num,
controlNavThumbs:true,
controlNavThumbsFromRel:true
});
});
</script>


<!-- Вся страница -->

<table id="main"><tr>
<td id="left"><div id="left_d" class="menu2">

<!-- Меню каталога -->

{* Рекурсивная функция вывода дерева категорий *}
{function name=categories_tree}
{if $categories}
<ul>
{foreach $categories as $c}
{* Показываем только видимые категории *}
{if $c->visible}
<li>
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if}
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->meta_title|escape}</a>
{categories_tree categories=$c->subcategories}
</li>
{/if}
{/foreach}
</ul>
{/if}
{/function}
{categories_tree categories=$categories}

<!-- Меню каталога (The End)-->

</div></td>
<!-- Основная часть -->
<td id="right"><div id="content">
{$content}
</div></td>
<!-- Основная часть (The End) -->


</tr></table>
<!-- Вся страница (The End)-->




Link to post
Share on other sites

У вас ошибка тут: 

var menu2_ul = $('.menu2 > li > ul'),
menu2_a = $('.menu2 > li > a');
Не хватает > ul. Поскольку menu2 - это див который оборачивает ul li.

Нужно так:

var menu2_ul = $('.menu2 > ul > li > ul'),
menu2_a = $('.menu2 > ul > li > a');
Ну это так себе реализация. По сути она будет работать только для каталога с уровнями не выше 2-х.

Так же было бы удобно предусмотреть открытие списка если выбрана дочерняя категория...

 

И когда выкладываете коды на форуме. Желательно их помещать в тег code

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...