обнаружить щелчок на изображении, вставленном через CSS-контент url ()? - PullRequest
1 голос
/ 09 января 2010

Я добавляю значок «удалить меня» ко всем элементам на моей странице с классом «myClass»:

div myClass:after
{
   content: url('remove-me-icon.jpg')
}

Затем я использую делегирование событий для обнаружения кликов на всех этих значках, прослушивая клики на содержащем элемент:

$("#myDivThatContainsThoseOtherDivs").click(function(e){
if ($(e.target).is('.myClass:after'):
{
   // XXX... remove this element
}
});

Однако код в XXX запускается всякий раз, когда пользователь нажимает на div с классом myClass; есть ли способ узнать, произошел ли этот щелчок специально на на одной из тех иконок , которые я вставляю с помощью свойства content CSS?

РЕДАКТИРОВАТЬ: из ответов ниже кажется, что это не работает, потому что изображение не добавляется в DOM. Как можно достичь этого же эффекта? Я застрял с использованием JQuery для

$("div.myClass").each(
/* 
function that appends html to this element defining a clickable
icon with class "myClickableIcon" 
*/);

$("#myDivThatContainsThoseOtherDivs").click(function(e){
if ($(e.target).is('.myClickableIcon'):
{
   // XXX... remove this element
}
});

и затем делать то же самое для каждого нового добавляемого div класса myClass? (Я не использую один из тех плагинов для обработки событий, которые добавляют обработчики событий даже для элементов, которые еще не созданы, которые соответствуют их селектору.)

Или есть более разумный способ сделать это?

Заранее спасибо за любую помощь,

лара

Ответы [ 2 ]

2 голосов
/ 09 января 2010

По словам веб-инспектора Safari, css: after не изменяет DOM, поэтому я не думаю, что будет возможно обнаружить клики из JavaScript.

2 голосов
/ 09 января 2010

Нет, это невозможно.

Вставленный контент не имеет элемента DOM. И события связаны с элементами DOM.

Вы должны добавить значок в качестве элемента DOM самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...