Я использую Foundation-сайты v6.5.1.
Объяснение моей настройки:
Я импортирую фундамент, как этов моем main.js
файле.
import $ from 'jquery';
import whatInput from 'what-input';
window.$ = $;
import Foundation from 'foundation-sites';
Foundation.addToJquery(jQuery);
$(document).foundation();
import motionUI from 'motion-ui';
import fDatepicker from 'foundation-datepicker';
import custom from './custom.js';
Файл скомпилирован с gulp:
function scripts(cb){
return browserify({
entries: js.entrySrc
})
.transform( babelify, { presets: [ '@babel/preset-env' ] } )
.bundle()
.pipe( source(js.src) )
.pipe( rename( {
extname: '.min.js'
} ) )
.pipe( buffer() )
.pipe( gulpif( production, stripDebug() ) )
.pipe( gulpif( !production, sourcemaps.init({ loadMaps: true }) ) )
.pipe( gulpif( production, uglify() ) )
.pipe( sourcemaps.write( '.' ) )
.pipe( gulp.dest( js.dest ) )
.pipe( notify ({ message: 'Assets compiled!' }) )
.pipe( browserSync.stream(), cb );
}
Все это работает как положено.
Я ставлю его в очередьWordPress с JQuery в качестве зависимости.Wordpress загружает его в следующем порядке:
jquery
main.js
3rdparty.js
Проблема связана с отдельным файлом 3rdparty.js
.
Я использую некоторые базовые события для управления некоторыми элементами.Например:
$('#testing').on('down.zf.accordion up.zf.accordion', function() {
console.log('open');
});
Проблема теперь в том, что события не запускаются при использовании в 3rdparty.js
.
Они работают нормально, когда используются непосредственно в main.js
или еслииспользованный и импортированный с файлом custom.js
.
Чтобы он работал в custom.js
Мне пришлось запустить файл с
import $ from 'jquery';
$(document).ready(function custom() {...
, несмотря на то, что это уже было в main.js
в противном случае события не работали.
Однако события работают , когда я использую CDN для фундамента и ставлю его в очередь непосредственно в Wordpress, так чтопорядок:
jquery
foundation.js
main.js
3rdparty.js
Большой вопрос сейчас, почему события не запускаются в 3rdparty.js
?