Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь с jQuery 
:(
    Опции темы
Somebi
Дата 9.8.2009, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.8.2009

Репутация: нет
Всего: нет



Помогите найти ошибку пожалуйста. Все работает в Firefox и Опере, но отказывается в IE6 & IE7 и Chrome.

Почему-то игнорируются эти строки, то есть при клике на <option></option> ничего не происходит:

Код

$('#cat1 option').bind("click", function(){current_cat1 = $(this).attr('value'); call_cats();});
 
$('#cat2 option').bind("click", function(){current_cat2 = $(this).attr('value'); call_cats();});
 
$('#cat3 option').bind("click", function(){current_cat3 = $(this).attr('value'); call_cats();});



И когда кликаю по <option id="null1"> , то эти строки почему-то тоже не работают:
Код


$('#cat2').html('');
 
$('#cat3').html('');



Код


var current_cat1 = 'null1';
var current_cat2 = 'null2';
var current_cat3 = 'null3';


function call_cats() {

    fill_cat1();
    fill_cat2();
    fill_cat3();

}





function fill_cat1() {

    $('#cat1').html('');
    var selected = '';

    var cat1 = $('#cat1');
    
    cat1.prepend('<option id="null1" value="null1"></option>');

        var i = 0;
        while(i <= main_cats['main_cat_rows'] - 1) {
            if(current_cat1 == 'null1') {
            $('#null1', cat1).remove();
            cat1.prepend('<option id="null1" value="null1" selected></option>');
            current_cat2 = 'null2';current_cat3 = 'null3';
            }
            if(current_cat1 == i){var selected = 'selected';
            cat1.append('<option ' + selected + ' value="' + i + '">' + main_cats['main_cat'][i] + '</option>');
            i++;
            }
            
            cat1.append('<option value="' + i + '">' + main_cats['main_cat'][i] + '</option>');
            i++;
        }
    $('#cat1 option').bind("click", function(){current_cat1 = $(this).attr('value'); call_cats();});    
}









function fill_cat2() {

    $('#cat2').html('');
    var selected = '';
    
    var cat2 = $('#cat2');
    
    cat2.prepend('<option id="null2" value="null2"></option>');
    
        var i = 0;

        while(i <= sub_cats['list_rows'][current_cat1] - 1) {
            if(current_cat2 == 'null2') {
            $('#null2', cat2).remove();
            cat2.prepend('<option id="null2" value="null2" selected></option>');
            current_cat3 = 'null3';            
            }
            if(current_cat2 == i){var selected = 'selected';
            cat2.append('<option ' + selected + ' value="' + i + '">' + sub_cats['list_all'][current_cat1][i] + '</option>');
            i++;
            }
            cat2.append('<option value="' + i + '">' + sub_cats['list_all'][current_cat1][i] + '</option>');
        i++;
        }
    $('#cat2 option').bind("click", function(){current_cat2 = $(this).attr('value'); call_cats();});
}








function fill_cat3() {

    $('#cat3').html('');
    var selected = '';
    
    var cat3 = $('#cat3');
    
    cat3.prepend('<option id="null3" value="null3"></option>');
    
        var i = 0;
        while(i <= sub_cats['list_sub_rows'][current_cat2] - 1) {
            if(current_cat3 == 'null3') {$('#null3', cat3).remove();cat3.prepend('<option id="null3" value="null3" selected></option>');}
            if(current_cat3 == i){var selected = 'selected';
            cat3.append('<option ' + selected + ' value="' + i + '">' + sub_cats['sub_list'][current_cat1][current_cat2][i] + '</option>');
            i++;
            }
            cat3.append('<option value="' + i + '">' + sub_cats['sub_list'][current_cat1][current_cat2][i] + '</option>');
        i++;
        }
    $('#cat3 option').bind("click", function(){current_cat3 = $(this).attr('value'); call_cats();});
}




PM MAIL   Вверх
unicross
Дата 9.8.2009, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 1
Всего: 53



Цитата(Somebi @  9.8.2009,  01:39 Найти цитируемый пост)
$('#cat1 option').bind("click", function(){current_cat1 = $(this).attr('value'); call_cats();});

Попробуйте так:
Код

$('#cat1').bind("change", function(){current_cat1 = $(this).val(); call_cats();});

Цитата(Somebi @  9.8.2009,  01:39 Найти цитируемый пост)
$('#cat2').html('');

Лучше полностью сформировать новый список и заменить старый на новый с помощью метода replaceWith().


PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0411 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.