jquery перед загрузкой библиотеки
Есть элементарный спойлер, но jquery подключается в конце страницы, так(естественно не работает):
<html>
<head>
<script>
jQuery(document).ready(function(){
jQuery('.spoiler-content').hide()
jQuery('.spoiler').click(function(){
jQuery(this).toggleClass("close").toggleClass("open").next().toggle()
})
})
</script>
</head>
<body>
...
<script type="text/javascript" src="jquery.js"></script>
</body>
</html>
Если подключить jquery в <head>, то всё гут. Как переделать спойлер так, чтобы работало независимо от того, где подключен jquery |
window.onload = function() {
$('.spoiler-content').hide()
$('.spoiler').click(function(){
$(this).toggleClass("close").toggleClass("open").next().toggle()
})
}
|
Toki, опусти скрипт спойлера ниже скрипта jQuery. Это элементарно, не?
|
Цитата:
danik.js С удовольствием бы, но нельзя. |
window.addEventListener('DOMContentLoaded', function() {
$('.spoiler-content').hide()
$('.spoiler').click(function(){
$(this).toggleClass("close").toggleClass("open").next().toggle();
})
});
|
Ruslan_xDD, спасибо огромное, все работает :)
|
Не плохо бы проинформировать что способ не работает в IE8
|
Toki,
:) Или поставить на класс <div class="spoiler-content" style="display:none" |
Deff, и как это поможет?
|
Цитата:
При всяких слайдерах и больших фонах так и будет точать открытым |
Все правильно. Пока средства (js код), позволяющие открыть спойлер не подгрузились гарантированно - спойлер пусть будет открытым.
|
Toki,
как вариант по таймеру проверять подгрузилось ли jQuery - если да таймер незапускать больше а нужный код проинициализировать |
:) Имхо, проще уж на тег
<html>
<head>
<style>
.spoiler-content {
display:none;
}
.spoiler b{
display:none;
cursor:pointer;
padding:13px;
color:blue;
}
.spoiler.close b:first-child{
display:block;
}
.spoiler.open b:last-child {
display:block;
}
</style>
<script>
function myFunk(sel) {
$(sel).toggleClass("close").toggleClass("open").next().toggle()
}
</script>
</head>
<body>
<div class="spoiler close" onclick="myFunk(this)"><b>Открыть</b><b>Cкрыть</b></div>
<div class="spoiler-content">
Привет!<br/>
Привет!<br/>
Привет!<br/>
</div>
...
<script src="http://code.jquery.com/jquery-latest.js"></script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 11:18. |