Czy jest jakiś sposób, aby uzyskać ID elementu, który wywołuje zdarzenie?
I'm thinking something like:
<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>
Z tym, że oczywiście var test
powinien zawierać id "aaa"
, jeśli zdarzenie jest odpalane z pierwszego formularza, oraz "bbb"
, jeśli zdarzenie jest odpalane z drugiego formularza.
W jQuery event.target
zawsze odnosi się do elementu, który wywołał zdarzenie, gdzie event
jest parametrem przekazanym do funkcji. http://api.jquery.com/category/events/event-object/
$(document).ready(function() {
$("a").click(function(event) {
alert(event.target.id);
});
});
Zauważ również, że this
również będzie działać, ale nie jest to obiekt jQuery, więc jeśli chcesz użyć na nim funkcji jQuery, musisz odwołać się do niego jako $(this)
, np:
$(document).ready(function() {
$("a").click(function(event) {
// this.append wouldn't work
$(this).append(" Clicked");
});
});
Możesz użyć (this)
aby odwołać się do obiektu, który wywołał funkcję.
This'` jest elementem DOM, gdy znajdujesz się wewnątrz funkcji wywołania zwrotnego (w kontekście jQuery), na przykład wywołanej przez metody click, each, bind, itp.
Tutaj możesz dowiedzieć się więcej: http://remysharp.com/2007/04/12/jquerys-this-demystified/