Bir olayı ateşleyen öğenin kimliğini alma

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.

Çözüm

jQuerydeevent.targether zaman olayı tetikleyen öğeyi ifade eder, buradaevent` 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 thisin 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");
    });
});
Yorumlar (13)

Referans için bunu deneyin! İşe yarıyor!

jQuery("classNameofDiv").click(function() {
    var contentPanelId = jQuery(this).attr("id");
    alert(contentPanelId);
});
Yorumlar (5)

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/

Yorumlar (1)