Saya menggunakan JHtml::script
untuk menambahkan skrip ke halaman saya dalam modul yang dikembangkan khusus. Namun, skrip ini disuntikkan ke kepala sebelum J3 menambahkan di jQuery - misalnya:
<!-- my module js -->
<script src="/modules/mod_tiles/js/jquery.isotope.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/jquery.hoverintent.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/mod_tiles.js" type="text/javascript"></script>
<!-- then joomla loads jQuery --->
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
Bagaimana saya bisa memaksa Joomla untuk memuat jQuery sebelum skrip lain?
joomla-3.x
jquery
tangan coding
sumber
sumber
mod_tiles.php
jQuery paksa ini untuk memuat pertama. Terima kasih!jika saya membaca pertanyaan Anda dengan benar, Anda sedang mengembangkan modul Anda sendiri.
Coba ini, di default.php - tampilan modul (dalam "tmpl"):
JHtml::stylesheet('modules/'.$module->module.'/assets/css/yourfile.css');
JHtml::script('modules/'.$module->module.'/assets/js/yourscript.js');
Atau ini :
JHtml::_('stylesheet', 'modules/'.$module->module.'/assets/css/anotherfile.css');
JHtml::_('script', 'modules/'.$module->module.'/assets/js/othercript.js');
Dalam kedua kasus, file JS Anda harus disuntikkan setelah jQuery, asalkan Anda membuat folder "aset", dan folder "css" dan "js" di dalamnya.
Solusi kedua lebih sesuai dengan joomla 3.XX API.
Semoga ini bisa membantu.
sumber
assets
folder - ini tidak membuat perbedaan, dan skrip masih memuat sebelum jQuery melakukannya. Saya juga bertanya-tanya tentang kebijaksanaan dalam menempatkan kode semacam ini dalam file templat (terutama jika ada beberapa templat menggunakan skrip yang sama, KERING dll.)default.php
ditmpl
folder (templat) modul. Saya akan berpikir skrip harus dimuat dalammod_tiles.php
('controller') daripadadefault.php
(tampilan).Saya mengalami masalah ini minggu lalu dan itu terkait dengan tempat saya memanggil JHtml :: script. Apakah Anda melakukan ini dalam tampilan Anda atau template tampilan? Jika Anda mencoba untuk menambahkan skrip dalam tampilan itu sendiri (views / yourview / view.html.php) mereka akan dimasukkan sebelum skrip Joomla sendiri, tetapi jika Anda menambahkan skrip dalam template (views / yourview / tmpl / default.php) mereka akan dimasukkan setelah skrip Joomla!
Semoga berhasil!
sumber
tmpl
. Saya mencoba menambahkan skrip di mod_tiles.php dan default.php - keduanya dimuat sebelum jQuery.Ini mungkin karena metode yang digunakan pengembang
mod_tiles
untuk mengimpor skrip. Saya berasumsi mereka tidak terjebak dengan standar pengkodean Joomla dalam situasi ini.Anda memiliki 2 opsi (yang dapat saya pikirkan) hwre:
JHtml
.Semoga ini membantu
sumber
Saya ingin menambahkan dua-bit saya setelah fakta. Saya punya beberapa skrip dan style sheet yang perlu dimuat untuk setiap tampilan yang kita miliki dalam komponen, dan ingin satu titik agar itu terjadi memastikan juga bahwa mereka dimuat dalam urutan yang benar.
Dalam file
components\myComponent\mycomponent.php
:sumber
Saya tahu ini adalah topik lama tetapi apakah Anda pernah sampai di bagian bawah ini? Saya baru saja mengalami masalah yang sama. Saya telah mengidentifikasi PENYEBAB tetapi bukan masalah / solusi; Saya memiliki dugaan licik bahwa itu adalah BUG tetapi bisa dilakukan dengan orang lain yang mencobanya.
Skenario: Anda telah membuat modul yang menyertakan skrip dependen jQuery sehingga Anda menggunakan yang berikut ini dalam tampilan default.php Anda:
Anda kemudian menginstal modul dan memberikannya posisi modul, katakanlah 'kiri'. Ketika Anda melihat kode sumber ujung depan semuanya terlihat baik, semua skrip memuat setelah skrip yang termasuk dalam
NAMUN jika Anda memberi modul posisi 'akordeon' dan gunakan fitur joomla loadposition untuk menambahkan modul ke artikel
kemudian accordion.js ditambahkan SEBELUM file bootstrap.framework.
Satu-satunya cara saya dapat membuatnya bekerja adalah dengan menambahkan skrip sebagai skrip inline daripada dimasukkan dalam kepala.
EDIT: yang sama berlaku untuk termasuk css; sedang ditambahkan ke bagian atas daftar deklarasi css (sebelum templat dan bootstrap file css). Tubuh untuk ini adalah untuk menambahkan! Penting untuk deklarasi css.
sumber