Saya baru saja memperhatikan bahwa saya mendapatkan banyak sekali peringatan yang sudah ketinggalan zaman dalam pembuatan Chrome terbaru (kenari).
event.layerX dan event.layerY rusak dan tidak digunakan lagi di WebKit. Mereka akan dikeluarkan dari mesin dalam waktu dekat.
Sepertinya jQuery mengacaukan semuanya.
Saya menggunakan: jquery-1.6.1.min.js
.
Apakah akan membantu untuk meningkatkan ke versi jQuery terbaru atau belum diperbaiki atau apakah itu bug Chrome atau itu sesuatu yang lain.
PS
Saya tidak dapat menunjukkan kode kepada Anda karena saya pikir ini adalah kesalahan umum, tetapi saya curiga peringatan tersebut dilemparkan ketika saya mencoba mengakses objek jQuery atau ketika jQuery mencoba mengakses layerX / layerY (well, saya cukup yakin itu masalahnya mengingat kesalahan: P).
jQuery mungkin menyalin properti-properti itu ke objek jQuery.
Begitu...
Apa yang sedang terjadi?
EDIT
jQuery 1.7 keluar dan memperbaiki masalah ini.
Baca lebih lanjut di blog mereka, di sini .
sumber
@
untuk menekan kesalahan.layerX
danlayerY
, setidaknya sampai mereka memberikan pertimbangan lebih hati-hati. Perlu juga dicatat bahwa IE baru-baru ini ditambahkanlayerX
danlayerY
setelah tidak memilikinya sampai versi 9. Dugaan saya adalah properti ini tidak akan hilang - setidaknya sampai ada pengganti W3C yang sesuai, yang tidak akan segera. Peringatan hilang dalam versi terbaru dari WebKit.Jawaban:
Apa yang sedang terjadi!?
"jQuery mungkin menyalin properti-properti itu ke objek jQuery." Kamu benar sekali, jadi sepertinya kamu sudah tahu! :)
Semoga jQuery akan memperbarui kode mereka untuk berhenti menyentuh itu, tetapi pada saat yang sama WebKit seharusnya tahu lebih baik daripada mencatat peringatan penghentian pada suatu acara (setidaknya menurut saya). Satu pengendali mouse dan konsol Anda meledak. :)
Ini tiket jQuery terbaru: http://bugs.jquery.com/ticket/10531
UPDATE: Ini diperbaiki sekarang jika Anda meningkatkan ke jQuery 1.7.
Harap dicatat bahwa jika memutakhirkan jQuery tidak memperbaiki masalah untuk Anda, itu mungkin ada hubungannya dengan ekstensi / plugin yang digunakan seperti yang dinyatakan Jake dalam jawabannya .
sumber
http://jsperf.com/removing-event-props/2
Perbaikan sementara adalah menjalankan kode ini sebelum Anda melakukan acara apa pun yang mengikat melalui jQuery:
MEMPERBARUI
Lihat tes kinerja terbaru untuk mengetahui apa cara tercepat untuk menghapus alat peraga acara.
sumber
Solusi terpendek untuk ini adalah ini satu kalimat:
sumber
Jumlah pesan ini yang sangat besar (saya baru mendapatkan 80000 dari mereka saat menggunakan gmail) memang merupakan bug di Chrome.
Anda harus memberi bintang pada masalah pada Chromium .
sumber
Ini juga dapat disebabkan oleh ekstensi Chrome, jadi periksa apakah pembaruan jQuery tidak berfungsi.
sumber
Berikut ini satu perbaikan lagi, tanpa mengganti instance asli dari $ .event.props (yang mungkin atau mungkin bukan array), untuk berjaga-jaga :-)
sumber
Saya telah menggunakan ini setelah memanggil acara apa pun:
Itu bekerja untuk saya, saya tidak punya pesan peringatan karena saya sudah membuat patch ini pada kode saya.
sumber
Selain masalah konfigurasi yang tercantum dalam jawaban lain, kesalahan ini dapat dipicu oleh kesalahan sederhana dalam kode Anda sendiri: melupakan tanda '#' dari pemilih ID jQuery.
Saya memiliki kode yang terlihat seperti
(kehilangan # di depan "datenotset")
Serta (jelas) gagal berfungsi, itu memicu pesan kesalahan ini di Chrome.
sumber
Saya mengalami masalah ini dalam kode saya sendiri. Ternyata saya mengulangi semua properti pada objek acara sebagai bagian dari alat debugging / inspeksi yang saya gunakan. Dalam contoh khusus ini saya menggunakan $ .Exp jQuery untuk mengkloning objek untuk pemeriksaan nanti, tapi saya percaya salah satu teknik iterasi standar dalam berbagai toolkit akan memicu peringatan juga.
Saya menyebutkannya di sini karena pemikiran awal saya hanya mencari basis kode untuk contoh layerX atau layerY tidak membantu - properti sedang dirujuk secara umum, bukan dengan nama.
sumber