Почему я получаю ошибку 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>
тегов из-за производительности. Как я могу решить это?