Как получить идентификатор элемента по нажатию кнопки в mootools (1.1) - PullRequest
1 голос
/ 15 ноября 2010

У меня есть несколько ссылок с неопределенным идентификатором, например:

<a href="#" class="remove_pid" id="pid_123">Remove 123</a>
<a href="#" class="remove_pid" id="pid_234">Remove 234</a>
<a href="#" class="remove_pid" id="pid_567">Remove 567</a>
<a href="#" class="remove_pid" id="pid_890">Remove 890</a>

У меня есть обработчик событий, например:

$$('.remove_pid').addEvents({
   'click': removePid
});

которая вызывает эту функцию

function removePid(event)
{
    alert('yo what is my element id???');
}

Итак, вопрос в том, как получить идентификатор элемента в функции removePid ()?

UPDATE:

@ Aishwar, event.target.id, кажется, работает в следующем случае, но не в моем случае

<a href="#" class="remove_pid"><img src="/123.jpg" id="pid_123"></a>

ОБНОВЛЕНИЕ 2:

Я подумал, что это несущественно, но вместо текста «Удалить 123» у меня на самом деле изображение вот так:

<a href="#" class="remove_pid" id="pid_123"><img src="/123.jpg"></a>

Итак, спасибо за @Dimitra за указание на это. Я был удивлен отменой голосования, но рад сказать, что, вероятно, я это заслужил.

Ответы [ 3 ]

1 голос
/ 17 ноября 2010

согласно разметке, опубликованной в ФИНАЛЬНОМ обновлении:

http://www.jsfiddle.net/dimitar/Sr8LC/

$$('.remove_pid').addEvents({
    'click': function(e) {
        new Event(e).stop();
        var id = this.getProperty("id");
        alert(id);
        alert(id.replace("pid_", ""));
    }
});

для использования именованной функции и сохранения события:

var removeProduct = function(e) {
    new Event(e).stop();
    var id = this.getProperty("id");
    alert(id);
    alert(id.replace("pid_", ""));
};

$$('a.remove_pid').each(function(el) {
    el.addEvents({
        'click': removeProduct.bind(el)
    });
});

в обеих функциях this будет ссылаться на элемент триггера (якорь), поэтому вы можете прочитать его свойство и т. д. this.getFirst() будет ссылаться на изображение (если вы этого хотите).

1 голос
/ 15 ноября 2010

У меня нет опыта работы с mootools. Но я думаю, что вы можете просто сделать что-то в этом роде, в removePid:

var element = event.srcElement || event.target
element.id // is the element's id, element is the DOM element itself
0 голосов
/ 15 ноября 2010

Думаю, я нашел это:

function removePid(event)
{
    //alert('yo what is my element id???');
    $(event.target).getParent('a').getProperty('id');
}

Это работает в FF 3.6

...