Я создаю инструмент для отладки для себя. Я хочу, чтобы он размещал класс на любом элементе, когда бы он ни щелкнул.
Примерно так:
$('*').click(function(){$(this).toggleClass('debug')});
Это на самом деле работает, за исключением того, что переключает «отладку» для ВСЕХ элементов.
Например:
<body>
<div id='3'>
<div id='2'>
<div id='1'></div>
</div>
</div>
</body>
Если я нажму <div id="1">
, он добавит класс с именем "debug" в <div id="2">
и <div id="3">
.
То, что происходит, когда вы нажимаете <div id="1>
, это считается кликом для всех 3, потому что технически все дивы были нажаты. Поэтому я подумал о том, чтобы иметь массив, содержащий все элементы HTML.
Пока у меня есть:
window.v = [];
$('*').click(function(){window.v.push(this)});
После этого это:
$(window.v[0]).toggleClass('debug');
К сожалению, когда это:
$(window.v[window.v.length]).toggleClass('debug');
... или вышеописанное выполняется, ничего не делает. Иногда он помещает класс «debug» в тег body.
Итак, я не совсем уверен, является ли использование массива лучшим маршрутом для этого. У кого-нибудь еще есть идеи о том, как универсально щелкнуть по любому элементу и разместить на нем класс отладки?
Заранее спасибо.