Как я могу получить элемент, по которому щелкнули, встроенный HTML onclick и jQuery? - PullRequest
3 голосов
/ 24 мая 2010

Я создаю теги с этим кодом:

$('#td' + id).append('<p><a href="#" onclick="excluirArquivo(\'' + response + '\'); return false;"><img src="/erp/proposta/media/images/delete.png" alt="Excluir arquivo" /></a> ' + file + '</p>');

функция excluirArquivo

function excluirArquivo(arquivo) {
    $.ajax({
        type: 'POST',
        url: '/erp/proposta/index.php/arquivo/remover/' + arquivo
    });

    alert($(this));
}

Но этот элемент внутри функции excluirArquivo возвращает объект Window.Как получить выбранный элемент (тег) внутри excluirArquivo?

Ответы [ 2 ]

9 голосов
/ 24 мая 2010

Если вы должны назначить свой обработчик событий таким образом (то есть способом "DOM 0" вместо jQuery), вы можете сделать это:

<a href='#' onclick='excluirArquivo(this)' > ... </a>

ИлиЯ полагаю (учитывая, что вы хотите передать параметр):

<a href='#' onclick='excluirArquivo.call(this, param)'> ... </a>

Таким образом, «this» внутри функции будет элементом, который кажется ближе к тому, что вы хотите.

1 голос
/ 25 мая 2010

Вы должны разделить это, вот так:

$("#td" + id).append("<p><a  href=\"#\" /></p>");

и затем выберите новый элемент

$("#td > p > a").click(
function(){
//this now will be pointing to the selected element
}
)
...