Я создал меню JQuery выпадающего со следующей HTML:JQuery выпадающего меню
<dl class="dropdown">
<dt><a id="linkglobal1"><span class="icon lock">Action</span></a></dt>
<dd>
<ul id="ulglobal1">
<li><a href="#"><span>Everyone</span></a></li>
<li><a href="#"><span>Friends</span></a></li>
<li><a href="#"><span>Only Me</span></a></li>
<li><a href="#"><span>Customize</span></a></li>
</ul>
</dd>
</dl>
, а затем JS:
$(document).ready(function()
{
$('dl.dropdown dt a').click(function()
{
$("dl.dropdown dt a").removeClass("selected");
var toggleId = "#" + this.id.replace(/^link/,"ul");
$('dl.dropdown dd ul').not(toggleId).hide();
$(toggleId).toggle();
if($(toggleId).css("display") == "none")
{
$(this).removeClass("selected");
}
else
{
$(this).addClass("selected");
}
});
$("dl.dropdown dd ul li a").click(function()
{
$("dl.dropdown dd ul").hide();
$("dl.dropdown dt a").removeClass("selected");
});
$(document).bind('click', function(e)
{
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
{
$("dl.dropdown dd ul").hide();
$("dl.dropdown dt a").removeClass("selected");
}
});
});
Проблемой, которую я имею, что она опирается на использование идентификаторов на как <dt>
, так и <ul>
. Как я могу изменить свой jQuery, чтобы он больше не полагался на них?
Благодаря
EDIT: Я ответил на это сам. Смотри ниже.
Вы так любите: http://jsbin.com/urohel/2/edit? – voigtan