Uncaught ReferenceError: $ не определено - Datepicker - Codeigniter 3 - PullRequest
0 голосов
/ 17 апреля 2019

привет!

Прежде всего, большое спасибо за помощь!

Сценарий:

1 ° я использую codeigniter

2 ° Я добавил этот очень простой скрипт в свой VIEW FILE.

(https://jqueryui.com/datepicker/#default)

3 ° Это сообщение об ошибке, которое я получаю в браузере:

Uncaught ReferenceError: $ is not defined at VM113 info:21
(anonymous) @ VM113 info:21

Это мой метод управления:

public function info()
{
    $data['pagetitle'] = 'general use';

    $this->load->view('theme/header1');
    $this->load->view('multiform/register2',$data);
    $this->load->view('theme/footer');
}

Этот файл VIEW моего заголовка: header1

<!DOCTYPE html>
<html lang="en">
<head>  
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Teste</title>

<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/testelib/jquery-ui.min.css">   

<script type="text/javascript" defer src="<?php echo base_url(); ?>assets/testelib/jquery-3.3.1.min.js"></script>

<script type="text/javascript" defer src="<?php echo base_url(); ?>assets/testelib/jquery-ui.js"></script>

<script>

    $( "#datepicker" ).datepicker({
    inline: true
    });
</script>

Это мой файл VIEW: register2

<p>Date: <input type="text" id="datepicker"></p>

PS: Если я сделаю этот пример со «всеми файлами в одной папке», сценарий будет работать нормально.

Только из-за того, что .js и .css Links библиотек Jquery находятся в отдельных файлах, я получил этот конфликт.

Что мне делать, пожалуйста?

Заранее большое спасибо.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

, ребята, большое спасибо за ваши советы, помощь и внимание. После 4 дней сильной боли я нашел сообщение, в котором указывалось, как мне ответить.

Ответ от @TimBrownlaw дал мне свет. JQuery Javascript не работает в codeigniter

Существует совместимость между этими форматами ссылок:

<?php echo base_url(); ?>assets/lib/jquery-3.3.1.min.js">

И этот формат ссылки:

<?php echo base_url("assets/lib/jquery-3.3.1.min.js"); ?>"

Но я думаю, что до сегодняшнего дня я делал это неправильно, хотя уже прочитал всю документацию C.I.

Документация гласит открыто, поэтому используйте base_url следующим образом:

1 ° echo base_url ("блог / пост / 123");

2 ° echo base_url ("images / icons / edit.png");

https://www.codeigniter.com/user_guide/helpers/url_helper.html#base_url

base_url с имя контроллера , метод и параметр ВНУТРИ (в скобках) и НЕ ВНЕ.

Другая проблема заключалась в атрибуте "defer" с элементами. Это означает, что jQuery не будет загружаться, пока не загрузятся все остальные html.

Но этот фрагмент кода попытается запустить, как только загрузится представление.

$( "#datepicker" ).datepicker({inline: true});  

Конечно, это не получается - jQuery еще не загружен, поэтому $ не определен.

Я удалил атрибут "defer" из тегов, и он запустился!.

Ну вот и все! Большое спасибо всем! Работает!

0 голосов
/ 17 апреля 2019

включить этот скрипт для включения jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Символ $ не определен, так как jquery не включен в скрипт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...