- Saya menggunakan situs WordPress.
- Saya menyertakan skrip ini di header.
Saat skrip dimuat, saya mendapatkan kesalahan ini:
TypeError: 'undefined' bukan sebuah fungsi (mengevaluasi '$ (dokumen)')
Saya tidak tahu apa yang menyebabkannya atau apa artinya itu.
Di pembakar, saya mendapatkan ini:
$ bukan fungsi
Net
tab Firebug (pastikan jQuery benar-benar dimuat).Jawaban:
Wordpress menggunakan jQuery dalam mode noConflict secara default. Anda perlu merujuknya menggunakan
jQuery
nama variabel, bukan$
, mis. Gunakandari pada
Anda dapat dengan mudah menyelesaikan ini dalam fungsi yang dapat dieksekusi sendiri sehingga
$
merujuk ke jQuery lagi (dan menghindari polusi namespace global juga), misalnyasumber
jQuery(document)
alih-alih ke$(document)
mana pun Anda inginkan. Jika Anda ingin menggunakan$
sebagai gantinya, maka skrip di atas hanya membuat fungsi yang mengambil argumen$
lalu mengeksekusi lewatnyajQuery
; singkatnya, di dalam fungsi,$
menunjuk ke jQuery seperti yang Anda harapkan.$(document).ready(function() { // code });
di tempat$(document);
... Anda yang bekerja seperti pesona.Gunakan jQuery's
noConflict
. Itu membuat keajaiban bagi sayaArtinya, anggap Anda memasukkan jQuery pada HTML Anda
sumber
Gunakan ini:
sumber
Coba cuplikan ini:
Itu bekerja untuk saya, mungkin itu akan membantu Anda juga.
sumber
Saya punya masalah ini hanya di Chrome.
Saya mencoba menambahkan
sebelum menelepon
Itu berhasil.
Terima kasih banyak
sumber
Juga periksa untuk memasukkan jQuery, diikuti oleh beberapa komponen / perpustakaan lain (seperti jQuery UI) dan kemudian secara tidak sengaja memasukkan jQuery lagi - ini akan mendefinisikan ulang jQuery dan menjatuhkan komponen pembantu (seperti .depeper) dari contoh.
sumber
Tempatkan kode js Anda di dalam penutupan di atas, itu harus menyelesaikan masalah.
sumber
Saya akan menggunakan ini
sumber
Saya juga sering menghadapi masalah seperti itu di web develoment carrier. Sebenarnya ini bukan konflik JS, Ketika kita memuat situs web html ke browser kita tidak menghadapi kesalahan seperti itu, tetapi ketika kita memuat situs web jenis ini melalui localhost kita menghadapi masalah seperti itu. Itu karena localhost. Ketika kami memuat skrip melalui localhost, ia memindai skrip dan menampilkan hasilnya. Tetapi ketika kami tidak menggunakan localhost. Itu hanya memindai output. Contoh, ketika kita menulis kode php menempatkan localhost dan berjalan tanpa host kita mendapatkan kesalahan. Tetapi jika kode itu benar dan dijalankan melalui host kita mendapatkan output aktual, dan ketika kita menggunakan elemen periksa kita mendapatkan kode output dalam format HTMl tetapi tidak dalam format PHP ini karena rendering kode.
Ini adalah kesalahan render. Jadi untuk memperbaiki kesalahan kode jquery ini salah satu solusinya mungkin menggunakan metode ini.
Apa yang dilakukan kode ini adalah mendaftarkan '$' sebagai variabel ke fungsi dengan menerapkan jquery. Jika tidak, file .js hanya dibaca sebagai javascript.
sumber
Saya mengalami masalah ini juga ketika memasukkan jQuery di header halaman saya, tidak menyadari bahwa host sudah memasukkannya ke halaman secara otomatis. Jadi muat laman Anda langsung dan periksa sumbernya untuk melihat apakah jQuery sedang ditautkan.
sumber
Dua hal:
sumber
bungkus semua skrip di antara ini ...
Banyak pustaka JavaScript menggunakan $ sebagai fungsi atau nama variabel, seperti halnya jQuery. Dalam kasus jQuery, $ hanyalah alias untuk jQuery, jadi semua fungsionalitas tersedia tanpa menggunakan $. Jika Anda perlu menggunakan pustaka JavaScript lain bersama jQuery, kembalikan kontrol $ kembali ke pustaka lain dengan panggilan ke $ .noConflict () . Referensi lama $ disimpan selama inisialisasi jQuery; noConflict () cukup mengembalikannya.
sumber
Anda dapat menggunakan potongan jQuery dan $ in di bawah ini. itu berhasil untuk saya
sumber
Anda dapat melewati fungsi $ in ()
atau Anda bisa menggantinya
$(document);
dengan inijQuery(document);
atau bisa kamu gunakan
jQuery.noConflict()
sumber