Отображение окна с предупреждением начальной загрузки при нажатии на привязку

#javascript #jquery #twitter-bootstrap

#javascript #jquery #twitter-bootstrap

Вопрос:

У меня есть элемент привязки, который удаляет элементы при нажатии на него. Я пытаюсь отобразить окно сообщения с предупреждением об опасности начальной загрузки (не окно предупреждения) при нажатии на тег привязки. я пытаюсь добиться этого, не оборачивая привязку в div. любая помощь приветствуется.

 $(document).ready(function(){
$('.remove-item').click(function(){
    $('.alert').show()
setTimeout(function(){
    $(".remove-item").hide(); 
  }, 2000);
});
});  
 .alert{
    display: none;
}  
   

 <a href="#" class="btn btn-danger  remove-item" data-dismiss="alert" data-code="<?php echo $product_code; ?>"><i class="glyphicon glyphicon-trash"></i></a>  

Комментарии:

1. У вас есть тег anchor A, но вы запускаете тег BUTTON, которого я не вижу в вашем html.

Ответ №1:

Вот небольшое решение, на которое вы можете положиться. Это в vanillia JS.

HTML

 <button class="anchor">test 1</button>
<button class="anchor">test 2</button>
<button class="anchor">test 3</button>
<button class="anchor">test 4</button>

<div id="alert">
<strong>Are you sure?</strong>
<button id="alert-ok">ok</button>
</div>
  

CSS

 #alert {
  display: none;
}
  

JS

 var buttons = document.getElementsByClassName('anchor');

var alertBox = document.getElementById("alert");

var alertBoxOk = document.getElementById("alert-ok");


Array.prototype.forEach.call(buttons, function (btn) {
    btn.addEventListener("click", function (event) {
  var toRemove = event.target;
  alertBox.style.display = "block";
  console.log(toRemove);
  alertBoxOk.addEventListener("click", function() {
    toRemove.remove();
    alertBox.style.display = "none";
  });
  })
});

function deleteAnchor() {
    this.remove();
}
  

И скрипка: скрипка

Комментарии:

1. этот пример — это то, чего я хочу достичь, jsfiddle.net/g1rnnr8r/2 . но это делается с помощью тегов button и div. где as mine — это просто тег привязки, который используется для удаления элементов в списке. а затем показывать это предупреждающее сообщение, когда оно удалено. как я могу адаптировать свой пример к этому решению.

2. Пожалуйста, взгляните на эту скрипку. jsfiddle.net/agorgon/43g5pvk0/7 Я изменил теги кнопок на теги привязки и добавил дополнительные event.preventDefault() для остановки привязки, чтобы изменить местоположение.

3. Дело в том, что это не окно сообщения начальной загрузки. поскольку я использую bootstrap, этот пример jsfiddle.net/g1rnnr8r/2 это то, чего я хочу достичь с помощью моего тега привязки ` <a href=»#» class=»btn btn-danger remove-item» data-dismiss=»alert» data-code=»<?php echo $product_code; ?>»><i class=»glyphicon glyphicon-trash»></i></a> ` возможно ли адаптировать мой тег привязки, чтобы получать это окно сообщения при нажатии?

Ответ №2:

Нет проблем с классами, которые вы используете для предупреждения о начальной загрузке, и также нет проблем с событием click, но НЕОЖИДАННОЕ ЗАВЕРШЕНИЕ ВВОДА означает, что существует класс или функция, которые не закрыты. В вашем случае вы объявили две функции, но закрыта только одна… :

 $(document).ready(function(){
  $('.remove-item').click(function(){
  $('.alert').show()
  setTimeout(function(){
     $(".remove-item").hide(); 
  }, 2000);
});
  

Неперехваченная ошибка ссылки: $ не определен означает, что библиотека jQuery не установлена… У вас есть необходимый тег script? Что-то вроде :

 <script
src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y 7E="
crossorigin="anonymous"></script>
  

Комментарии:

1. спасибо за ваш ответ, одна функция предназначена для щелчка, а другая — для удаления окна предупреждения через 2 секунды. не уверен, что нужно сделать, чтобы это заработало. можете ли вы помочь, пожалуйста

2. Вам нужно завершить любую функцию символом }, но у вас есть только два из них, чтобы закрыть document.ready и обе ваши внутренние функции…

3. я добавил еще одну закрытую скобку. это то, что я пропустил . но ваш ответ точно такой же, как у меня, скобка отсутствует, я не уверен, что вы пытаетесь подразумевать, имея тот же ответ?

4. Я меняю отступ только для того, чтобы вы могли сосредоточиться на отсутствующей скобке

5. я вижу, добавив последнюю закрытую скобку . не отображается окно предупреждения. я думаю, что проблема не в этом. не уверен, что еще мне нужно добавить