#javascript
#javascript
Вопрос:
Я хочу открывать модальную версию каждый раз, когда я нажимаю на HTML-ссылку. В моей панели навигации у меня есть ссылка под названием «правила», где написаны все правила веб-сайтов. Каждый раз, когда кто-то нажимает на ссылку, я хочу, чтобы она открывала модальный javascript. С низким уровнем знаний javascript я лично не в состоянии создать что-то настолько простое, как это, без проблем.
Вот модальный скрипт и HTML:
<div class="modal-background">
<form action="/etc/set_cookie.php" method="post">
<div id="modal">
<div class="modalconent tabs">
<fieldset>
<span class="close">×</span>
<h2 class="fs-title">Cookies</h2>
<h3 class="fs-subtitle">We use cookies to improve your experience</h3>
<iframe style="width:100%; height:80px;" src="/etc/txt/cookies.php" ></iframe><br />
<input type="submit" name="cookie" value="Accept" id="button" class="btn fr" style="width:180px; padding:10px;" />
</fieldset>
</div>
</div>
</form>
</div>
<script>
window.onload = function () {
document.getElementById('button').onclick = function () {
document.getElementById('modal').style.display = "none"
};
};
$(".modal-background, .modal-close").on("click", function(){
$(".modal-container, .modal-background").hide();
});
// Get the modal
var modal = document.getElementById('modal');
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
Я хочу, чтобы вызов ссылки открывал скрипт, который находится в другой папке, при каждом его нажатии. Все, что я видел в Интернете, это кнопки с этой функцией, но поскольку я не силен в javascript, я не могу переписать его для работы с моим модальным скриптом.
Комментарии:
1. Я заметил, что поделился неправильным HTML-кодом, но все то же самое, только это не тот, который я использую для файлов cookie
Ответ №1:
Для общей модальной информации вы получите это из http://www.w3schools.com/howto/howto_css_modals.asp
// When the user clicks on the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
Однако, если вы используете Jquery (а из вашего кода вы используете), тогда у вас есть кое-что попроще:
Теперь, что вы можете сделать, это присвоить ID вашей ссылке и сделать это:
$("#YourIDHereLink").on("click", function ()
{
$("#Modal").css("display", "block");
}
Где, если вы хотите скрыть это, замените блок на «none»
В целом я рекомендую 2-й подход
Комментарии:
1. та же проблема, что и в ответе выше, модальная загрузка сразу и функции для скрытия модального не работают
2. вы пробовали приведенный ниже код? Попробуйте заменить ее на «none» вместо «block»
Ответ №2:
Чтобы вызвать функцию javascript с использованием ссылки, просто сделайте это следующим образом:
<a href="javascript:yourfunction();">Link to Javascript function</a>
Просто убедитесь, что файл, в котором находится ваша функция javascript, связан в заголовке html.
Комментарии:
1. Тогда я просто даю скрипту
function yourfunction() { the rest of the code }
?2. Я пытался сделать это сейчас, но, похоже, модальная загрузка при обновлении и ни один из методов закрытия не сработал
3. не могли бы вы описать свою проблему в jsfiddle? это сделало бы все намного проще.
4. jsfiddle.net/bkbox4md как я писал в hmtl, речь идет о 2 страницах. один с навигационной панелью, где я получил ссылку, а второй со скриптом и модальным html
Ответ №3:
ModaliseJS, может сделать свое дело.
HTML: Я только что добавил класс «confirm» и немного JS.
ModaliseJS закроет модальный режим, когда вы нажмете на любой элемент в модальном режиме с классами .close
, .confirm
, .cancel
, запускающими события onShow
, onHide
, onCancel
<!DOCTYPE html>
<html>
<head>
<title>Modal example</title>
<script src="js/modalise.js" type="text/javascript">
</script>
<script src="app.js" type="text/javascript">
</script>
</head>
<body>
<h1>Example modal 1</h1>
<button id="openModal">Show the modal</button>
<div class="modal-background">
<form action="/etc/set_cookie.php" method="post">
<div id="modal">
<div class="modalconent tabs">
<fieldset>
<span class="close">×</span>
<h2 class="fs-title">Cookies</h2>
<h3 class="fs-subtitle">We use cookies to improve your experience</h3>
<iframe style="width:100%; height:80px;" src="/etc/txt/cookies.php"></iframe>
<br />
<input type="submit" name="cookie" value="Accept" id="button" class="btn fr confirm" style="width:180px; padding:10px;" />
</fieldset>
</div>
</div>
</form>
</div>
<script>
var myModal = {}
window.onload = function() {
// It is one of the button Modalise will attach the Show event.
// Note that you can use Modalise without the events, by omitting the .attach() function.
// Then, you can use show() or hide() to use it manually without overload.
var btnOpen = document.getElementById('openModal');
// Modalise(id, options);
myModal = new Modalise('exampleModal', {
btnsOpen: [btnOpen]
})
.attach()
.on('onShow', console.log)
.on('onConfirm', console.log)
.on('onHide', console.log);
}
</script>
</body>
</html>