Saya menggunakan kode jquery berikut untuk menunjukkan tombol hapus kontekstual hanya untuk baris tabel yang kita arahkan dengan mouse kita. Ini berfungsi tetapi tidak untuk baris yang telah ditambahkan dengan js / ajax on the fly ...
Apakah ada cara untuk membuat ini bekerja dengan acara langsung?
$("table tr").hover(
function () {},
function () {}
);
jquery
live
jquery-1.4
Jorre
sumber
sumber
live
: api.jquery.com/live.live
dikatakan untuk digunakan.on
sebagai gantinya. "Pada jQuery 1.7, metode .live () sudah tidak digunakan lagi. Gunakan .on () untuk melampirkan event handler."http://api.jquery.com/live/
sumber
.live
sudah ditinggalkan sekarang, lihat jawaban Andre untuk metode penggantian sekarang.mouseover
danmouseout
peristiwa di sini akan menyebabkan kode terus menyala saat pengguna menggerakkan mouse di dalam elemen. Saya pikirmouseenter
danmouseleave
lebih tepat karena hanya akan menyala sekali saat masuk..live()
telah ditinggalkan sejak jQuery 1.7Gunakan
.on()
sebaliknya dan tentukan pemilih keturunanhttp://api.jquery.com/on/
sumber
Pada jQuery 1.4.1, acara hover berfungsi dengan
live()
. Pada dasarnya hanya mengikat ke mouseenter dan acara mouseleave, yang dapat Anda lakukan dengan versi sebelum 1.4.1 juga:Ini membutuhkan dua ikatan tetapi berfungsi juga.
sumber
Kode ini berfungsi:
sumber
PERINGATAN: Ada penalti performa yang signifikan dengan versi live hover. Ini terutama terlihat di halaman besar di IE8.
Saya sedang mengerjakan proyek tempat kami memuat menu multi-level dengan AJAX (kami punya alasan kami :). Lagi pula, saya menggunakan metode langsung untuk hover yang bekerja sangat baik pada Chrome (IE9 tidak apa-apa, tapi tidak hebat). Namun, di IE8 Itu tidak hanya memperlambat menu (Anda harus melayang selama beberapa detik sebelum akan turun), tetapi semua yang ada di halaman itu sangat lambat, termasuk menggulir dan bahkan memeriksa kotak centang sederhana.
Mengikat acara langsung setelah dimuat menghasilkan kinerja yang memadai.
sumber