function ClickMenu(id)
{
var parent = id.parentElement;
var li = document.getElementsByTagName('li');
for (var i = 0, j = li.length; i < j; i++)
{
if(li.hasAttribute('has')){
li.className='hidemenu';}
}
}
Новые параметры элемента
Подскажите пожалуйста, если я напишу:
<ul name="counter" count="4">
То будет ли это правильно и могу ли я через JS обратиться к параметру counter.
(counter) определяет кол-во нужных мне родительских элементов, как переменная )
Статья для общего понимания
Пример:
[HTML]
<script language="javascript">
function test()
{
if(document.getElementById("div1").hasAttribute("newparam"))
alert("div1.newparam:"+document.getElementById("div1").getAttribute("newparam"));
document.getElementById("div2").setAttribute("newparam",900);
if(document.getElementById("div2").hasAttribute("newparam"))
alert("div2.newparam:"+document.getElementById("div2").getAttribute("newparam"));
}
</script>
<div newparam="15" id="div1">Div1</div><br />
<div id="div2">Div2</div><br />
<div onclick="test();" style="background-color:#66FF66; cursor: pointer;">Test</div>
[/HTML]
Пример:
[HTML]
<script language="javascript">
function test()
{
if(document.getElementById("div1").hasAttribute("newparam"))
alert("div1.newparam:"+document.getElementById("div1").getAttribute("newparam"));
document.getElementById("div2").setAttribute("newparam",900);
if(document.getElementById("div2").hasAttribute("newparam"))
alert("div2.newparam:"+document.getElementById("div2").getAttribute("newparam"));
}
</script>
<div newparam="15" id="div1">Div1</div><br />
<div id="div2">Div2</div><br />
<div onclick="test();" style="background-color:#66FF66; cursor: pointer;">Test</div>
[/HTML]
Код:
что-то не работает....
Код:
<script language=javascript>
function ClickMenu(id)
{
var parent = id.parentElement;
var li = document.getElementsByTagName('li');
for (var i = 0, j = li.length; i < j; i++)
{
if(li.hasAttribute('has'))
{
//li.className='hidemenu';
li.style.display=="none"?li.style.display="":li.style.display="none";
}
}
}
</script>
<div onclick="ClickMenu(this);" style="background-color:#66FF66; cursor: pointer;">Test</div>
<ul>
<li>1</li>
<li has=1>has</li>
<li>3</li>
</ul>
<ul>
<li>1</li>
<li has=1>has</li>
<li>3</li>
</ul>
function ClickMenu(id)
{
var parent = id.parentElement;
var li = document.getElementsByTagName('li');
for (var i = 0, j = li.length; i < j; i++)
{
if(li.hasAttribute('has'))
{
//li.className='hidemenu';
li.style.display=="none"?li.style.display="":li.style.display="none";
}
}
}
</script>
<div onclick="ClickMenu(this);" style="background-color:#66FF66; cursor: pointer;">Test</div>
<ul>
<li>1</li>
<li has=1>has</li>
<li>3</li>
</ul>
<ul>
<li>1</li>
<li has=1>has</li>
<li>3</li>
</ul>
так работает, покажи класс hidemenu.
странно, как отдельный HTML код оно работает, а вот в движке Joomla работать не хочет... ((
Код:
<ul class="menu">
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Hand Tools</a>
<ul name="counter" count="1">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=6')" name="children1">1</a>
</li>
</ul>
</li>
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Power Tools</a>
<ul name="counter" count="4">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=4')" name="children1">Outdoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=5')" name="children2">Indoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=8')" name="children3">hgfdfg</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=9')" name="children4">967569</a>
</li>
</ul>
</li>
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Garden Tools</a>
<ul name="counter" count="2">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=7')" name="children1">3</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=10')" name="children2">nnnnnnnnn</a>
</li>
</ul>
</li>
</ul>
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Hand Tools</a>
<ul name="counter" count="1">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=6')" name="children1">1</a>
</li>
</ul>
</li>
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Power Tools</a>
<ul name="counter" count="4">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=4')" name="children1">Outdoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=5')" name="children2">Indoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=8')" name="children3">hgfdfg</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=9')" name="children4">967569</a>
</li>
</ul>
</li>
<li has="1" class="parent">
<a onclick="ClickMenu(this)">Garden Tools</a>
<ul name="counter" count="2">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=7')" name="children1">3</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=10')" name="children2">nnnnnnnnn</a>
</li>
</ul>
</li>
</ul>
Очень хочу добиться чтобы при нажатии на главном меню раскрывались дочерние подменю.. ))
В этой теме посмотри как меню сделано, там 2,3-я страницы.
Код:
<script language=javascript>
function ClickMenu(id)
{
var parent = id.parentNode;
var li = parent.getElementsByTagName('li');
for (var i = 0, j = li.length; i < j; i++)
{
if(li.hasAttribute('has'))
{
//li.className='hidemenu';
li.style.display=="none"?li.style.display="":li.style.display="none";
}
}
}
</script>
<ul class="menu">
<li class="parent">
<a onclick="ClickMenu(this)">Hand Tools</a>
<ul name="counter" count="1">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=6')" name="children1">1</a>
</li>
</ul>
</li>
<li class="parent">
<a onclick="ClickMenu(this)">Power Tools</a>
<ul name="counter" count="4">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=4')" name="children1">Outdoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=5')" name="children2">Indoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=8')" name="children3">hgfdfg</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=9')" name="children4">967569</a>
</li>
</ul>
</li>
<li class="parent">
<a onclick="ClickMenu(this)">Garden Tools</a>
<ul name="counter" count="2">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=7')" name="children1">3</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=10')" name="children2">nnnnnnnnn</a>
</li>
</ul>
</li>
</ul>
function ClickMenu(id)
{
var parent = id.parentNode;
var li = parent.getElementsByTagName('li');
for (var i = 0, j = li.length; i < j; i++)
{
if(li.hasAttribute('has'))
{
//li.className='hidemenu';
li.style.display=="none"?li.style.display="":li.style.display="none";
}
}
}
</script>
<ul class="menu">
<li class="parent">
<a onclick="ClickMenu(this)">Hand Tools</a>
<ul name="counter" count="1">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=6')" name="children1">1</a>
</li>
</ul>
</li>
<li class="parent">
<a onclick="ClickMenu(this)">Power Tools</a>
<ul name="counter" count="4">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=4')" name="children1">Outdoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=5')" name="children2">Indoor Tools</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=8')" name="children3">hgfdfg</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=9')" name="children4">967569</a>
</li>
</ul>
</li>
<li class="parent">
<a onclick="ClickMenu(this)">Garden Tools</a>
<ul name="counter" count="2">
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=7')" name="children1">3</a>
</li>
<li has="1">
<a onclick="showContent('/index.php?option=com_virtuemart&page=shop.browse&category_id=10')" name="children2">nnnnnnnnn</a>
</li>
</ul>
</li>
</ul>
Спасибо, ваша ссылка действительно помогла. Модуль полностью доделал :) Ура ))