Bir olayı tetikleyen öğenin kimliğini almanın herhangi bir yolu var mı?
Şöyle bir şey düşünüyorum:
<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>
Tabii ki var test
, olay ilk formdan ateşlenirse "aaa"
ve olay ikinci formdan ateşlenirse "bbb"
kimliğini içermelidir.
jQueryde
event.targether zaman olayı tetikleyen öğeyi ifade eder, burada
event` işleve aktarılan parametredir. http://api.jquery.com/category/events/event-object/
$(document).ready(function() {
$("a").click(function(event) {
alert(event.target.id);
});
});
Ayrıca this
in de çalışacağını, ancak bunun bir jQuery nesnesi olmadığını, bu nedenle üzerinde bir jQuery işlevi kullanmak istiyorsanız, ona $(this)
olarak başvurmanız gerektiğini unutmayın, örn:
$(document).ready(function() {
$("a").click(function(event) {
// this.append wouldn't work
$(this).append(" Clicked");
});
});
Fonksiyonu ateşleyen nesneye referans vermek için (this)
kullanabilirsiniz.
''this'`, örneğin click, each, bind vb. yöntemler tarafından çağrılan bir geri arama işlevinin (jQuery bağlamında) içinde olduğunuzda bir DOM öğesidir.
İşte daha fazla bilgi edinebileceğiniz yer: http://remysharp.com/2007/04/12/jquerys-this-demystified/