Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2010, 14:09
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Помогите навесить обработчик
Здравствуйте.
Имеется выпадающее меню на javascript со сменным background.
Не удается навесить обработчик onchange.

<select class="kuk" >
  <option value="1">Русский</option>
  <option value="2">France</option>
</select>

фрагмент скрипта
function srReplaceSelects()
{
/*  var s = document.getElementsByTagName('select');*/
     var s = $('select.kuk');   
     var len = s.length
     for (var i = 0; i < len; i++)
      rsSelectReplace(s[i]);
    srAddEvent(document, 'click', srOnDocumentClick);
}

function rsSelectReplace(sel)
{
    var ie6 = (navigator.userAgent.search('MSIE 6.0') != -1);

    var ul = document.createElement('ul');
    if (!ie6) {
        ul.className = 'srList';
    } else {
        ul.className = 'srList2';
    }
    ul.className += ' srCollapsed';
    ul.className += ' srBlur';

    ul.srSelect = sel;
    sel.srReplacement = ul;

    sel.className += ' srReplacedSelect';
    sel.onfocus = function() { this.srReplacement.className = this.srReplacement.className.replace(/[\s]?srBlur/, ' srFocus'); }

    sel.onblur = function() {
        this.srReplacement.className = this.srReplacement.className.replace(/[\s]?srFocus/, ' srBlur');
    }
    sel.onchange = function()
    {
        alert("ch");
        var ul = this.srReplacement;
        ul.srSelectLi(ul.childNodes[this.selectedIndex]);
    }
...



функция sel.onchange = function() не работает

$('select.kuk').onchange(function(){alert('xxx'); }); - так тоже нет
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2010, 16:19
Аватар для Starkua
Аспирант
Отправить личное сообщение для Starkua Посмотреть профиль Найти все сообщения от Starkua
 
Регистрация: 10.02.2010
Сообщений: 52

Если я правильно понял - вы пользуетесь jQuery - в ней событие onchange называется просто change, то есть код должен быть примерно таким
$('select.kuk').change(function(){alert('xxx'); });
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2010, 18:45
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Сообщение от Starkua Посмотреть сообщение
Если я правильно понял - вы пользуетесь jQuery - в ней событие onchange называется просто change, то есть код должен быть примерно таким
$('select.kuk').change(function(){alert('xxx'); });
Вы правы, jQuery.
Спасибо за подсказку насчет change.
Исправил-
$('select.kuk').change(function(){alert('xxx'); });


Для появления на экране сообщения 'xxx' достаточно изменять
выбор в списке или еще необходим вызов change в коде?
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2010, 18:49
Аватар для Starkua
Аспирант
Отправить личное сообщение для Starkua Посмотреть профиль Найти все сообщения от Starkua
 
Регистрация: 10.02.2010
Сообщений: 52

Сообщение от bublik
Для появления на экране сообщения 'xxx' достаточно изменять
выбор в списке или еще необходим вызов change в коде?
Обработчик вызывается при любом изменении опций, или вручную или программно.
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2010, 18:55
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Сообщение от Starkua Посмотреть сообщение
Обработчик вызывается при любом изменении опций, или вручную или программно.
При ручном изменении в выпадающем списке сообщений нет.
Сообщение появляется один раз при загрузке страницы.
Ответить с цитированием
  #6 (permalink)  
Старый 27.06.2010, 18:57
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Ошибся, сообщений вообще нет.
Ответить с цитированием
  #7 (permalink)  
Старый 27.06.2010, 20:53
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Сообщения появляются только при изменении с клавиатуры,
при изменении мышкой- сообщений нет.
Ответить с цитированием
  #8 (permalink)  
Старый 27.06.2010, 21:21
Аватар для Starkua
Аспирант
Отправить личное сообщение для Starkua Посмотреть профиль Найти все сообщения от Starkua
 
Регистрация: 10.02.2010
Сообщений: 52

Сообщение от bublik
Сообщения появляются только при изменении с клавиатуры,
при изменении мышкой- сообщений нет.
Значит гдето есть ошибка, проверяйте пошагово, все ли колбеки вызываются. change() работает как надо, проверено множество раз на работающих проектах. Почитайте доку по нему, может помочь http://api.jquery.com/change/
Ответить с цитированием
  #9 (permalink)  
Старый 27.06.2010, 21:29
Интересующийся
Отправить личное сообщение для bublik Посмотреть профиль Найти все сообщения от bublik
 
Регистрация: 27.06.2010
Сообщений: 26

Сообщение от Starkua Посмотреть сообщение
Значит гдето есть ошибка, проверяйте пошагово, все ли колбеки вызываются. change() работает как надо, проверено множество раз на работающих проектах. Почитайте доку по нему, может помочь http://api.jquery.com/change/
Не знаю, как отладить.
Если отключить javascript- для стандартного <select> change
работает как надо.
Если навешиваю javascript + jquery и добавляю ul-li список
картинок, change перестает работать с мышки.
Ответить с цитированием
  #10 (permalink)  
Старый 27.06.2010, 21:31
Аватар для Starkua
Аспирант
Отправить личное сообщение для Starkua Посмотреть профиль Найти все сообщения от Starkua
 
Регистрация: 10.02.2010
Сообщений: 52

Сообщение от bublik
Не знаю, как отладить.
Если отключить javascript- для стандартного <select> change
работает как надо.
Если навешиваю javascript + jquery и добавляю ul-li список
картинок, change перестает работать с мышки.
Посмотреть на проблемку в деле можно?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите нубу Fongolcs Работа 34 19.05.2010 22:45
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41