Existe alguma forma de obter a identificação do elemento que dispara um evento?
I' estou a pensar em algo como:
<html>
<head>
<script type="text/javascript" src="starterkit/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a").click(function () {
var test = caller.id;
alert(test.val());
});
});
</script>
</head>
<body>
<form class="item" id="aaa">
<input class="title"></input>
</form>
<form class="item" id="bbb">
<input class="title"></input>
</form>
</body>
</html>
Exceto, é claro, que a var test
deve conter a id "aaa"
, se o evento for disparado a partir do primeiro formulário, e "bbb"
, se o evento for disparado a partir do segundo formulário.
Em jQuery event.target
refere-se sempre ao elemento que desencadeou o evento, onde event
é o parâmetro passado para a função. http://api.jquery.com/category/events/event-object/
$(document).ready(function() {
$("a").click(function(event) {
alert(event.target.id);
});
});
Note também que isso
também funcionará, mas que não é um objeto jQuery, então se você deseja utilizar uma função jQuery nele, então você deve se referir a ele como $(isto)
, por exemplo:
$(document).ready(function() {
$("a").click(function(event) {
// this.append wouldn't work
$(this).append(" Clicked");
});
});
Você pode utilizar (isto)
para referenciar o objeto que disparou a função.
Este é um elemento DOM quando você está dentro de uma função de callback (no contexto de jQuery), por exemplo, sendo chamado pelo clique, cada um, bind, etc.
Aqui é onde você pode saber mais: http://remysharp.com/2007/04/12/jquerys-this-demystified/