Реализация без jQuery
Есть скрипт, который показывает блоки при выборе определенного пункта select. Но он работает только с включенной библиотекой jQuery. Можно ли как-то реализовать то же самое без jQuery?
Это нужно, т.к. происходит очередной банальный конфликт библиотек, который я никак не могу отследить. С noConflict я как-то не подружился.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#selecter1').click(function(){
document.getElementById("block1").style.display = "none";
document.getElementById("block2").style.display = "none";
});
$('#selecter2').click(function(){
document.getElementById("block1").style.display = "block";
document.getElementById("block2").style.display = "none";
});
$('#selecter3').click(function(){
document.getElementById("block1").style.display = "none";
document.getElementById("block2").style.display = "block";
});
});
</script>
</head>
<body>
<select name="menu" size="1">
<option name="type" value="0" id="selecter1" select="selected"> </option>
<option name="type" value="1" id="selecter2">Фундамент</option>
<option name="type" value="2" id="selecter3">Перекрытия 1-го этажа</option>
</select>
<div id="block1" style="display:none;">БЛОК 1</div>
<div id="block2" style="display:none;">БЛОК 2</div>
</body>
</html>
|
вместо $(document).ready(function(){}) использовать window.onload = function(){}
вместо $('#selecter1')click(function(){}) - document.getElementById("selecter1").onclick = function(){} |
Цитата:
<!DOCTYPE html>
<html>
<head>
<!--<script src="http://code.jquery.com/jquery-latest.js"></script>-->
<script type="text/javascript">
window.onload = function(){
document.getElementById("selecter1").onClick = function(){
document.getElementById("block1").style.display = "none";
document.getElementById("block2").style.display = "none";
});
document.getElementById("selecter2").onClick = function(){
document.getElementById("block1").style.display = "block";
document.getElementById("block2").style.display = "none";
});
document.getElementById("selecter3").onClick = function(){
document.getElementById("block1").style.display = "none";
document.getElementById("block2").style.display = "block";
});
});
</script>
</head>
<body>
<select name="menu" size="1">
<option name="type" value="0" id="selecter1" select="selected"> </option>
<option name="type" value="1" id="selecter2">Фундамент</option>
<option name="type" value="2" id="selecter3">Перекрытия 1-го этажа</option>
</select>
<div id="block1" style="display:none;">БЛОК 1</div>
<div id="block2" style="display:none;">БЛОК 2</div>
</body>
</html>
|
IndigoHollow,
ощути разницу между словами "onclick" и "onClick" найди 10 отличий. |
IndigoHollow,
круглые скобки неубраны и клик по option это суперхит!!! |
Цитата:
|
Цитата:
А не знаешь как решить вот эту проблему? http://javascript.ru/forum/showthrea...499#post286499 |
IndigoHollow,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function () {
var b = document.querySelector("select"),
c = document.querySelectorAll("div");
b.onchange = function () {
for (var b = this.value - 1, a = 0; a < c.length; a++) c[a].style.display = a != b ? "none" : "block"
}
};
</script>
<title></title>
</head>
<body>
<select name="menu" size="1">
<option name="type" value="0" id="selecter1" select="selected">
</option>
<option name="type" value="1" id="selecter2">
Фундамент
</option>
<option name="type" value="2" id="selecter3">
Перекрытия 1-го этажа
</option>
</select>
<div id="block1" style="display:none;">
БЛОК 1
</div>
<div id="block2" style="display:none;">
БЛОК 2
</div>
</body>
</html>
|
Мой вариант, потопорнее. У рони, покомпактнее, нужно только селекторы по классу использовать и дать имена нормальные переменным (кстати, не обижайся если начну ставить минусы за твои a,b,c - реально напрягает когда читаешь код).
<!DOCTYPE html>
<html>
<head>
<!--<script src="http://code.jquery.com/jquery-latest.js"></script>-->
</head>
<body>
<select name="menu" size="1" id="select">
<option name="type" value="0" select="selected"> </option>
<option name="type" value="1">Фундамент</option>
<option name="type" value="2">Перекрытия 1-го этажа</option>
</select>
<div id="block1" style="display:none;">БЛОК 1</div>
<div id="block2" style="display:none;">БЛОК 2</div>
<script>
(function(){
var select = document.getElementById("select")
var block1 = document.getElementById("block1");
var block2 = document.getElementById("block2");;
var toggle = function(show1, show2) {
block1.style.display = show1 ? "block" : "none";
block2.style.display = show2 ? "block" : "none";
}
select.onchange = function() {
toggle(this.value == 1, this.value == 2);
};
})()
</script>
</body>
</html>
Рекомендую не ждать onload события - проще опустить скрипт вниз, когда все элементы уже доступны. |
danik.js,
Цитата:
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 00:18. |