Notikumu izraisījušā elementa ID iegūšana

Vai ir kāds veids, kā iegūt tā elementa ID, kas izraisa notikumu?

Es domāju kaut ko līdzīgu:

<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>

Tikai, protams, var test būtu jāietver id "aaa", ja notikums tiek izsaukts no pirmās formas, un "bbb", ja notikums tiek izsaukts no otrās formas.

Risinājums

JQuery event.target vienmēr attiecas uz elementu, kas izraisīja notikumu, kur event ir funkcijai nodotais parametrs. http://api.jquery.com/category/events/event-object/

$(document).ready(function() {
    $("a").click(function(event) {
        alert(event.target.id);
    });
});

Ņemiet vērā arī to, ka this arī darbosies, bet tas nav jQuery objekts, tāpēc, ja vēlaties tam izmantot jQuery funkciju, tad uz to jāatsaucas kā uz $(this), piemēram:

$(document).ready(function() {
    $("a").click(function(event) {
        // this.append wouldn't work
        $(this).append(" Clicked");
    });
});
Komentāri (13)

Lai uzzinātu, izmēģiniet šo! Tas darbojas!

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

Jūs varat izmantot (this), lai atsauktos uz objektu, kas palaida funkciju.

'this' ir DOM elements, ja jūs atrodaties atpakaļsaukuma funkcijas iekšpusē (jQuery kontekstā), piemēram, ja to izsauc klikšķa, each, bind u. c. metodes.

Šeit varat uzzināt vairāk: http://remysharp.com/2007/04/12/jquerys-this-demystified/.

Komentāri (1)