Функция не определена из другого файла js (НЕ проблема заказа) - только IE - PullRequest
0 голосов
/ 13 февраля 2020

Почему я получаю ошибку javascript (функция не определена) в Inte rnet Explorer, когда я пытаюсь вызвать функцию, которая находится в другом файле js?

Я использую laravel Blades, это мой родительский шаблон:

<!DOCTYPE html>
<html>
    <head>

        <!-- METAS -->
        <title>@yield('titulo')</title>



        @yield('css')

    </head>


    <body> 

        @include('navbar')

        @yield('content')

        @include('footer')

        <!-- Here I have jquery and bootstrap js files... -->


        <script src="{{ asset('js/sitio/custom.js') }}" type="text/javascript"></script>


        @yield('js')

    </body> 

</html>

Так что в расширенном представлении у меня есть:

@extends('layouts.template')
@section('content')
<button id="button" type="button">Click me</button>
@endsection

@section('js')
<!-- Here I have a js file that calls a function that lives inside custom.js -->
<script src="{{ asset('js/some-js-file.js') }}"></script>
@endsection

В основном у меня есть кнопка, которая при нажатии должна отправить некоторые данные более ajax:

код внутри some-js-file.js:

$(document).ready(function(){
   $('#button').on('click', function(){
      sendAjax(); //the error is here, I get a 'sendAjax is not defined'
   })

});

код внутри custom.js:

//this function is declared inside the global scope

function sendAjax(){
   //do things
}

Стоит также отметить, что сегмент кода, который вызывает функцию custom.js файла, которая выполняется внутри $(document).ready().., также это происходит только с inte rnet explorer, в других браузерах, таких как firefox, chrome, и safari работает всегда нормально.

Я прочитал предложение изменить местоположение моего пользовательского файла. js и переместить его внутрь тега <head>, но мне также необходимо переместить библиотеки jquery и bootstrap js. поскольку этот пользовательский файл использует их, и согласно этому ответу НЕ рекомендуется перемещать jquery внутри <head> тегов из-за производительности. Как я могу решить это?

...