События и изображения.
Всем привет, читал учебник, возник вопрос при нажатии на кнопку, должно меняться изображение:
<body> <div align = "center" > <img id="menu"> </div> </br> <div align = "center" > <input type="button" id="btn1" value="1"> <input type="button" id="btn2" value="2"> <input type="button" id="btn3" value="3"> <input type="button" id="btn4" value="4"> <input type="button" id="btn5" value="5"> <input type="button" id="btn6" value="6"> <input type="button" id="btn7" value="7"> <input type="button" id="btn8" value="8"> <input type="button" id="btn9" value="9"> <input type="button" id="btn0" value="0"> <a><button value="7" id="btn7"><onclick = 'run()'> 7 </button></a> </div> </body>
window.onload = function(){
var img = document.getElementById('menu')
img.src = "1.jpg"
function runimg1(){
var runimg=document.createElement('img')
runimg.src="2.jpg"
document.getElementById('menu').appendChild(runimg)
function runimg2(){
var runimgm=document.createElement('img')
runimgm.src='3.jpg'
document.getElementById('menu').appendChild(runimgm)
}
//пробовал разные варианты, что то ничего не работает :(
var btn7 = document.getElementById("btn7")
var handler= runimg1()
btn7.attachEvent("onclick", handler);
пробовал менять через Id, через функцию которая бы вызывалась при нажатии, не работает. :( и еще такой вопрос, если я хочу смену картинки сделать по нажатию комбинации кнопок? (onclick3&onclick3&onclick4) подскажите в чем может быть проблема. спс. |
Цитата:
<button value="7" id="btn7" onclick= "run()"> 7 </button> Вообщем, вот:
<img alt="" id="MyImg">
<input type="button" value="1" onclick="Img('ссылка на изображение')">
<input type="button" value="2" onclick="Img('ссылка на изображение')">
<input type="button" value="3" onclick="Img('ссылка на изображение')">
<input type="button" value="4" onclick="Img('ссылка на изображение')">
function Img(a)
{
document.getElementById('MyImg').src = a;
}
|
спасибо за ответ.
onclick= "run()" это была функция которая запускала runimg1(), но таким способом у меня ничего не заработало. Я просто хотел разобраться как это сделать через id кнопки, что бы можно было использовать комбинации кнопок. |
f0rzik, через комбинации кнопок...
создайте функцию, которую вызывайте по нажатию на определенные кнопки...ну и скажем запишите, а потом сравнивайте id кнопок по которым кликнули, если в итоге получилась правильная комбинация, то все ок... |
ясно а почему когда я пишу например
document.getElementById('btn7').onclick = function() {
alert('Клик');}
по идее я ж определяю Id кнопки, и если я ее нажал происходит вызов alert, а на деле ничего не происходит. |
<input type="button" value="1" id=btn7>
<script type="text/javascript">
document.getElementById('btn7').onclick = function() {
alert('Клик');}
</script>
|
хммм странно только почему это у меня не работает...
|
<button value="7" id="btn7"><onclick = 'run()'> 7 </button> Вы наверное опять не правильно пишете. |
Цитата:
либо событие определять в window.onload=
<script type="text/javascript">
window.onload= function Img() {
document.getElementById('btn7').onclick = function() {
alert('Клик');}
}
</script>
<input type="button" value="1" id=btn7>
|
то Ruslan_xDD нет в этот раз уже правильно :)
то Deff таки да, скрипт был раньше. спасибо. но теперь всплывает такой вопрос по поводу комбинаций, я же могу так написать:
<script type="text/javascript">
var com1=document.getElementById('btn7').onclick
var com2=document.getElementById('btn8').onclick
if(com1&&com1&&com2) {
alert('778');
}
</script>
|
<script type="text/javascript">
window.onload= function Img() {
var com1=document.getElementById('btn7');
var com2=document.getElementById('btn8');
com1.onclick=com2.onclick = function() {
alert('778');
}
}
</script>
<input type="button" value="1" id=btn7>
<input type="button" value="2" id=btn8>
|
то Deff в таком случае получается что при нажатии на любую кнопку, вызывает событие, так как они равны?
|
f0rzik,
:( Ну нун обиснять чо нужно, - Ваша идея в посте 10 - равноценна 11 |
f0rzik,
<script type="text/javascript">
var i = 0, arr = ["btn7", "btn7", "btn8"];
function Img(but) {
if (but == arr[i]) {
i++;
if (i == arr.length) { return alert("клик"); }
}
else { i = 0; }
}
window.onload = function () {
var com1=document.getElementById('btn7');
var com2=document.getElementById('btn8');
com1.onclick=com2.onclick = function() {
Img(this.id);
}
}
</script>
<input type="button" value="1" id=btn7>
<input type="button" value="2" id=btn8>
|
Ксать удобнее массив селекторов и arraу и цикл присвоения onclick - судя по неоднозначности количества кликабельных
|
то Deff
извините за невнятное изложение проблемы, я при нажатии определенной комбинации кнопок (в качестве примера 778) получить событие, если комбинация не совпадает с 778 ничего не получать. по совету lord2kim написал нечто такое:
var com1=document.getElementById('btn7');
var com2=document.getElementById('btn8');
if(com1.onclick && com1.onclick && com2.onclick) {
alert('778');
}
}
<input type="button" value="1" id=btn7> <input type="button" value="2" id=btn8> по идее ведь должно работать? написал позже чем вы ответили ) |
&& - означает одновременное наличие(нажаты все кнопки одновременно
|| = близко - но подобные вещи не работают в событиях |
f0rzik, так не может работать...в данном случае onclick вернет функцию, установленную на соответствующий элемент
да и как он так посчитает...вы же не при трипл-клике вызываете функцию юзайте #14 пост |
ок всем спасибо за ответы и помощь.
|
извините за нубство, но возник такой вопрос:
<div align = "center" > <img src="img.jpg" id="menu"> </div> вот блок в котором по умолчанию выводится изображение img.jpg. есть такие функции :
function run(){
var dg=document.getElementById('menu')
dg.src="img.jpg"
}
window.onload= function clc7() {
document.getElementById('btn7').onclick = run()
}
и соответственно кнопка: <input type="button" id="btn7" value="7"> вопрос почему изображение меняется сразу, при загрузке страницы, а не по нажатию на кнопку? |
потому что в строчке
document.getElementById('btn7').onclick = run()
запускается функция run Вместо этой строчки напишите
document.getElementById('btn7').onclick = function() {run();}
или
document.getElementById('btn7').onclick = run
|
| Часовой пояс GMT +3, время: 14:19. |