У меня есть 3 блока, которые последовательно исчезают при загрузке страницы, как по этой ссылке: http://jsfiddle.net/x4qjscgv/6/ Однако я хочу, чтобы функция затухания срабатывала после того, как пользователь нажал кнопку. Я попытался использовать функцию document.getElementById, но она не работает.
Смотрите полный код ниже:
<html>
<head>
<script src = "http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('.word1, .word2, .word3').each(function(fadeIn) {
$(this).delay(fadeIn * 500).fadeIn(1000);
});
});
document.getElementById('btn').onclick = function(e)
</script>
<style>
#chat {
display: none;
}
</style>
</head>
<body>
<button id = "btn"> fade divs </button>
<div id = "chat" class = "word1">Word 1</div>
<div id = "chat" class = "word2">Word 2</div>
<div id = "chat" class = "word3">Word 3</div>
<div id = "" class = "">Word 4</div>
</body>
</html>
извините, это была ошибка при добавлении локальной версии jquery



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Эта строка действительно выбирает #btn, однако ничего не выполняет, потому что объявление функции неполное:
document.getElementById('btn').onclick = function(e)
Вы должны включить следующие действия функции:
document.getElementById('btn').onclick = function(e){
// add function within curly braces.
}
Стоит отметить, что e - это Объект события. Попробуйте добавить console.info('test') и проверьте консоль (часто доступ к которой осуществляется через щелчок правой кнопкой мыши> «Проверить») на наличие ваших сообщений.
Функция onclick, которую вы использовали, действительно ничего не делает, потому что вы не обернули ею свой код постепенного появления. Если вы уже используете jquery, попробуйте использовать обработчик события щелчка, например:
$(document).ready(function() {
$('#btn').click( function () {
$('.word1, .word2, .word3').each(function(fadeIn) {
$(this).delay(fadeIn * 500).fadeIn(1000);
});
});
});
<div id = "chat1" class = "word">Word 1</div>
<div id = "chat2" class = "word">Word 2</div>
<div id = "chat3" class = "word">Word 3</div>
.word {
display: none;
}
$(".word").click(function(e){
$(this).delay(10).fadeOut(1000);
});
Вы можете последовать моему примеру. Но учтите, что id - это только один экземпляр, а у класса может быть много экземпляров!
$(document).ready(function() {
$('.word1, .word2, .word3').each(function(fadeIn) {
$(this).delay(fadeIn * 500).fadeIn(1000);
});
});
$("#btn").on('click', function(e){
$('.word1, .word2, .word3').each(function(fadeIn) {
$(this).delay(fadeIn * 500).fadeIn(1000);
});
});
$("#btnhide").on('click', function(e){
$('.chat').hide();
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<style>
.chat {
display: none;
}
</style>
</head>
<body>
<button id = "btn"> fade divs </button> <button id = "btnhide"> hide divs</button>
<div class = "chat word1">Word 1</div>
<div class = "chat word2">Word 2</div>
<div class = "chat word3">Word 3</div>
<div id = "" class = "">Word 4</div>
</body>
Почему вы включаете две версии jQuery? Во-вторых, идентификаторы должен должны быть уникальными.