Lebih
Mendapatkan ID dari elemen yang dipecat acara
Apakah ada cara untuk mendapatkan ID dari elemen yang kebakaran sebuah acara?
I'm memikirkan sesuatu seperti:
<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>
Kecuali tentu saja bahwa var test
harus berisi id "aaa"
, jika acara ini dipecat dari bentuk pertama, dan "a"
, jika acara ini dipecat dari kedua bentuk.
923
21
Dalam jQuery
acara.target
selalu mengacu pada unsur yang memicu peristiwa, di manaevent
merupakan parameter yang dilewatkan ke fungsi. http://api.jquery.com/category/events/event-object/Perhatikan juga bahwa
ini
juga akan bekerja, tetapi itu bukan objek jQuery, jadi jika anda ingin menggunakan fungsi jQuery pada itu maka anda harus menyebutnya sebagai$(ini)
, misalnya:Untuk referensi, coba ini! Ia bekerja!
Meskipun hal ini disebutkan dalam posting lain, aku ingin mengeja ini:
$(event.target).id
undefined$(event.target)[0].id
memberikan atribut id.acara.target.id
juga memberikan atribut id.ini.id
memberikan atribut id.dan
$(ini).id
undefined.Perbedaan, tentu saja, adalah antara jQuery benda-benda dan DOM benda-benda. "id" adalah DOM properti sehingga anda harus pada elemen DOM objek untuk menggunakannya.
(Itu tersandung saya, jadi mungkin tersandung orang lain)
Untuk semua acara, tidak terbatas hanya jQuery yang dapat anda gunakan
Di mana
acara.target
gagal itu jatuh kembali padaacara.srcElement
untuk IE. Untuk memperjelas kode di atas tidak memerlukan jQuery tetapi juga bekerja dengan jQuery.Anda dapat menggunakan
(ini)
untuk referensi objek yang dipecat fungsi.'ini'
adalah DOM elemen ketika anda berada di dalam sebuah fungsi callback (dalam konteks jQuery), misalnya, yang disebut dengan klik, masing-masing, mengikat, dll. metode.Di sini adalah di mana anda dapat mempelajari lebih lanjut: http://remysharp.com/2007/04/12/jquerys-this-demystified/
Saya menghasilkan sebuah tabel secara dinamis sebuah database, menerima data JSON dan memasukkannya ke dalam sebuah tabel. Setiap baris tabel harus unik
ID
, yang diperlukan untuk tindakan lebih lanjut, jadi, jika DOM diubah, anda membutuhkan pendekatan yang berbeda:Elemen yang dipecat acara kami di acara properti
Kami mendapatkan DOM node objek yang ditetapkan event handler.
Paling bersarang node yang mulai menggelegak proses yang kita miliki di
Acara objek selalu pertama atribut event handler, contoh:
Lebih lanjut tentang acara delegasi dapat Anda baca di http://maciejsikora.com/standard-events-vs-event-delegation/
Sumber unsur sebagai objek jQuery harus diperoleh melalui
Ini membuat anda sumber klik, daripada elemen yang satu-klik fungsi ditugaskan juga. Dapat berguna ketika acara klik pada objek induk MISALNYA.acara klik pada baris tabel, dan anda butuhkan sel yang diklik
Anda dapat mencoba untuk menggunakan:
Dalam kasus dilimpahkan event handler, di mana anda mungkin memiliki sesuatu seperti ini:
dan anda JS kode seperti ini:
Anda'akan lebih dari mungkin menemukan bahwa itemId
undefined
, sebagai isi dari LI dibungkus dalam<span>
, yang berarti<span>
mungkin akan menjadi event target. Anda bisa mendapatkan sekitar ini dengan cek kecil, seperti:Atau, jika anda lebih memilih untuk memaksimalkan mudah dibaca (dan juga menghindari pengulangan yang tidak perlu dari jQuery pembungkus panggilan):
Ketika menggunakan acara delegasi,
.adalah()
adalah metode yang sangat berharga untuk memverifikasi bahwa acara anda target (antara lain) adalah benar-benar apa yang anda butuhkan untuk menjadi. Gunakan.terdekat(pemilih)
untuk mencari DOM pohon, dan menggunakan.menemukan(pemilih)
(umumnya ditambah dengan.pertama()
, seperti dalam.menemukan(pemilih).pertama()
) untuk pencarian bawah ini. Anda don't perlu menggunakan.pertama()
ketika menggunakan.terdekat()
, karena hanya mengembalikan pertama pencocokan nenek moyang elemen, sementara.menemukan()
mengembalikan semua pencocokan keturunan.ini bekerja dengan sebagian besar jenis elemen:
Ini bekerja pada tingkat yang lebih tinggi
z-index
dari acara parameter yang disebutkan di atas, jawaban:Dengan cara ini anda akan selalu mendapatkan
id
(dalam contoh inili
) elemen. Juga ketika diklik pada elemen anak dari orang tua..Penggunaan dapat Digunakan .pada acara
Kerja JSFiddle [di sini](http://jsfiddle.net/npvrx6sg/).
Hanya menggunakan
ini
referensiatau
ini.elemen.attr("id")
bekerja dengan baik di IE8.Kedua pekerjaan ini,
dan
Anda dapat menggunakan fungsi untuk mendapatkan id dan nilai untuk item yang diubah(dalam contoh saya, saya've digunakan Pilih tag.
I'm bekerja dengan
Saya mencoba mencari sebuah
event
seperti dijelaskan di atas, tetapi ketika fungsi permintaan kebakaran itu doesn't tampaknya akan tersedia. Saya menggunakanini.elemen.attr("id")
untuk mendapatkan elemen's ID sebaliknya, dan tampaknya bekerja dengan baik.