Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2010, 20:58
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Что-то onmouseup у меня не хочет правильно работать.
Кратенько HTML
<div style="background-image:url('_ima/but.gif')" id="but1" onmouseover="mybut('but1', 1)" onmouseout="mybut('but1')" onmousedown="mybut('but1', 2)" onmouseup="mybut('but1', 1)">
</div>

Кратенько Javascript
function mybut(elId, flag) {
     if (typeof flag == 'undefined') {flag = 0};
     var elem = document.getElementById(elId).style;
     switch (flag) {
          case 0: elem.backgroundImage = 'url("_ima/but.gif")'; break;
          case 1: elem.backgroundImage = 'url("_ima/but1.gif")'; elem.height = '24px'; elem.paddingTop = '0'; break;
          case 2: elem.backgroundImage = 'url("_ima/but2.gif")'; elem.height = '23px'; elem.paddingTop = '1px';
     }
}

Почему-то у меня при отпускании кнопки мыши срабатывает case 0,
хотя вроде должно срабатывать case 1. Правильно работает только в IE7-8.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2010, 21:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Странно, практически ничего не поменял, но всё работает.)
<script type="text/javascript">
	function mybut(elId, flag) {
	     if (typeof flag == 'undefined') {flag = 0};
	     var elem = document.getElementById(elId).style;
		 var elem2 = document.getElementById('event');
	     switch (flag) {
	          case 0: elem2.innerHTML+='0 | '; break;
	          case 1: elem2.innerHTML+='1 | ';  break;
	          case 2: elem2.innerHTML+='2 | ';
	     }
	}
</script>
<div style="width:336px;height:76px;background-image:url('/forum/images/ca_serenity/misc/logo.gif')"  id="but1" onmouseover="mybut('but1', 1)"  onmouseout="mybut('but1')" onmousedown="mybut('but1', 2)"  onmouseup="mybut('but1', 1)"></div>
<div id='event'>События:</div>
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2010, 21:44
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Вот тогда код поподробнее. Если кто-нибудь меня тыкнет носом, где я не прав, буду очень признателен.
HTML
<form id="form1" action="" method="post" accept-charset="utf-8">
  <div id="but1" class="but" onmouseover="mybut('but1', 1)" onmouseout="mybut('but1')" onmousedown="mybut('but1', 2)" onmouseup="mybut('but1', 1)" onclick="document.getElementById('form1').submit();">
    <input id="but1_ns" class="but" type="submit" value="войти" />
    <script type="text/javascript">jsbut('but1', 'войти');</script>
  </div>
</form>

CSS
Код:
.but{position:absolute;width:100px;height:26px;cursor:pointer}
.jsbut{width:100px;height:24px;padding-top:2px;background-image:url("_ima/but.gif");text-align:center;font-size:12px}
JS
function jsbut(elId, buttxt) {
  var newDiv = document.createElement('div');
  newDiv.className = 'jsbut';
  newDiv.id = elId + '_js';
  newDiv.innerHTML = buttxt;
  document.getElementById(elId).replaceChild(newDiv, document.getElementById('but1_ns'));
}

function mybut(elId, flag) {
  if (typeof flag == 'undefined') {flag = 0};
  var elem = document.getElementById(elId + '_js').style;
  switch (flag) {
    case 0: elem.backgroundImage = 'url("_ima/but.gif")'; break;
    case 1: elem.backgroundImage = 'url("_ima/but1.gif")'; elem.height = '24px'; elem.paddingTop = '2px'; break;
    case 2: elem.backgroundImage = 'url("_ima/but2.gif")'; elem.height = '23px'; elem.paddingTop = '3px';
  }
}
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2010, 21:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

А вы уверенны что срабатывает именно case 0, а не case 1, просто с ошибкой?
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2010, 22:05
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Да вот картинка подставляется вот эта url("_ima/but.gif")
Хотя должна вот эта url("_ima/but1.gif")
Причем, IE7-8 правильно работает. Ладно, завтра на свежую голову смотреть буду.
Спасибо за помощь.
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2010, 00:00
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от vahrusha
Да вот картинка подставляется вот эта url("_ima/but.gif")
а если получше проверить? Вставить в конец onmouseup console.log('onmouseup') и перед switch поставить console.log(flag)?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция которая работает на OnLoad не хочет работать на OnClick libinstyle Элементы интерфейса 6 23.03.2010 01:42
Как сделать, чтобы музыка <embed> на странице не играла только при первом посещении? Bad Request Общие вопросы Javascript 22 27.07.2009 19:44
GetElementById не хочет работать в динамической форме Игорёk Events/DOM/Window 8 23.06.2009 13:27
Что в скрипте не правильно? 6AT9 Общие вопросы Javascript 12 25.11.2008 12:18