sweetalert2 Uncaught SyntaxError: неожиданный идентификатор

Я хотел бы использовать SweetAlert2. Но я не могу заставить его работать ... Я читал различные сообщения о stackoverflow. Но я не смог решить свою проблему ..

На странице github sweetalert2 написано, что я могу включить таблицу стилей отдельно, если это необходимо, добавив
«sweetalert2 / dist / sweetalert2.min.js "
&" sweetalert2 / dist / sweetalert2.min.css ".

Или включите «import Swal from 'sweetalert2'»
и «const Swal = require ('sweetalert2')».

Итак, я применил первый подход и получил следующие сообщения об ошибках:

  • GET файл: ///Users/HyejungLim/SaferTrip_JL/sweetalert2/dist/sweetalert2.min.js 0 () index.html: 21
  • GET файл: ///Users/HyejungLim/SaferTrip_JL/sweetalert2/dist/sweetalert2.min.css 0 () index.html: 22
  • GET файл: ///Users/HyejungLim/SaferTrip_JL/sweetalert2/dist/sweetalert2.all.min.js 0 () jquery.min.js: 2 [Нарушение] обработчик setTimeout занял 120 мсек index.js: 31
  • Uncaught ReferenceError: swal не определен

    • at HTMLDivElement. (index.js:31)
    • в HTMLDivElement.dispatch (jquery.min.js: 2)
    • в HTMLDivElement.y.handle (jquery.min.js: 2)



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

$(document).ready(function() {
  $('#test').click(function(){
  $(".options:hidden").fadeIn()
    .on("click", function(){
      $(this).css("background", "#F3C78D");
    })
    .on("click", function(){
      swal({
        title: 'Sweet!',
        text: 'Modal with a custom image.',
        imageUrl: 'https://unsplash.it/400/200',
        imageWidth: 400,
        imageHeight: 200,
        imageAlt: 'Custom image',
        animation: false
      })
     });
  });
});
body{
  font-family: 'Poor Story', sans-serif;
}

#test{
   cursor: pointer;
   display: block;
   text-align: center;
   position: absolute;
   display: flex;
   left: 50%;
   top: 50%; 
   transform: translate(-50%, -50%);
}
.options {
    background: #f7f7f5;
    display: none;
    text-align: center;
    vertical-align: middle;
    position: absolute;
    width: 100%;
    left: 50%;
    top: 50%; 
    border-radius: 50%;
    border-style: solid;
    border-color: #F3C78D;
    width: 60px;
    height: 60px;
    font-size: 12px;
}

.options span {
    color: #000000;
    text-align: center;
    vertical-align: middle;
    position: absolute;
    width: 100%;
   left: 50%;
   top: 50%; 
   transform: translate(-50%, -50%);
}

#option1{
    transform: translate(-100%, -150%);
}

#option2{
    transform: translate(-160%, -40%);
}

#option3{
    transform: translate(-50%, 50%);
}

#option4{
    transform: translate(60%, -40%);
}

#option5{
    transform: translate(15%, -150%);
}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <!-- Bootstrap 4.1.x -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
  <link href="https://fonts.googleapis.com/css?family=Poor+Story" rel="stylesheet">
<!-- sweetalert2 -->
  <script src="sweetalert2/dist/sweetalert2.all.min.js"></script>
<!-- You can also include the stylesheet separately if desired: -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.0/sweetalert.min.js"></script>
  <link rel="stylesheet" href="sweetalert2/dist/sweetalert2.min.css">
  
</head>
<body>
  <div class="container">
    <button type="button" class="btn btn-outline-success" id="test">test</button>
    <div class="options" id="option1"><span>Hello<br>World</span></div>
    <div class="options" id="option2"><span>Goodbye</span></div>
    <div class="options" id="option3"><span>How<br>are<br>you?</span></div>
    <div class="options" id="option4"><span>Fine</span></div>
    <div class="options" id="option5"><span>Okay</span></div>
  </div>
</body>
<footer>
  <!-- Bootstrap 4.0 : jQuery first, then Popper.js, then Bootstrap JS -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script>
  <script type="text/javascript" src="index.js"></script>
</footer>
</html>

Как было предложено на официальной странице, я попробовал второй подход, который заключается в добавлении
«import Swal from 'sweetalert2'»
и «const Swal = require ('sweetalert2')»
в файл JavaScript.

Итак, я сделал и получил следующие сообщения об ошибках:

Uncaught SyntaxError: Неожиданный идентификатор
из-за «импорта Swal из 'sweetalert2'».

Кроме того, не работал ни один код JavaScript, который отображал пять кружков после нажатия зеленой кнопки.

В заключение, вторая попытка вызвала у меня больше проблем.

Как мне заставить sweetalert2 работать? Пожалуйста, дайте мне совет. Заранее спасибо!


person Lim    schedule 02.08.2018    source источник
comment
Когда я набираю список npm в терминале, я вижу [email protected]. Итак, я думаю, что установил его правильно.   -  person Lim    schedule 02.08.2018
comment
Также кто-то предложил добавить window.swal = require ('sweetalert2'); на laracasts.com/discuss/channels / javascript /. Но я получил сообщение об ошибке ReferenceError: require is not defined ...   -  person Lim    schedule 02.08.2018
comment
Я принял предложение изменить изменение с sweetalert2 / dist / sweetalert2.min.js на ‹cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.0/ ›. Теперь это работает. Но я получаю сообщения об ошибках для других ссылок sweet2. Думаю, я очень плохо разбираюсь в программировании ...   -  person Lim    schedule 02.08.2018


Ответы (1)


Я обнаружил 2 проблемы в вашем случае.

  1. Ссылка JQuery CDN помещается после любимой ссылки. Поместите ссылку CDN jquery над Sweetalert вместо нижнего колонтитула.

  2. используйте букву S в верхнем регистре Swal ({title: 'Sweet!' ,.

person Raj    schedule 02.08.2018
comment
Использование буквы «S» в верхнем регистре дало мне ошибку: index.js: 31 Uncaught ReferenceError: Swal не определен. 's' в нижнем регистре мне подходит. - person Lim; 02.08.2018
comment
Кроме того, я решил проблему, используя следующее: ‹script src = cdn.jsdelivr.net/npm/[email protected]/dist/› и ‹link rel = 'stylesheet' href = 'cdn.jsdelivr.net/npm/[email protected]/dist/ ' › - person Lim; 02.08.2018
comment
о, интересно! Я не мог заставить это работать в моей ситуации. Спасибо за ссылку jsfiddle. :) - person Lim; 05.08.2018