foundation-sites: события не работают при использовании в отдельном файле .js - PullRequest
0 голосов
/ 27 ноября 2018

Я использую 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?

...