За последние 24 часа нас посетили 19313 программистов и 1578 роботов. Сейчас ищут 2002 программиста ...

jquery

Тема в разделе "JavaScript и AJAX", создана пользователем bookin, 22 май 2010.

  1. bookin

    bookin Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    ок начал изучать написал обработкчик

    [js]$(document).ready(function(){

    $(".menu .bit_tex .off").click(function() {
    $(this).toggleClass("active");
    $(".em1").show("slow");

    $(".menu .bit_tex .active").click(function(){
    $(".em1").hide();
    })


    $(".menu .audi-video .active").ready(function(){
    $(this).toggleClass("active");
    $(".em1").hide();
    })

    });

    $(".menu .audi-video .off").click(function() {
    $(this).toggleClass("active");
    $(".em2").show("slow");

    $(".menu .audi-video .active").click(function(){
    $(".em2").hide();
    })

    $(".menu .bit_tex .active").ready(function(){
    $(this).toggleClass("active");
    $(".em1").hide();
    })

    });

    });[/js]

    вообщем две кнопки при клике на кнопку должно произойти смена класа, для того что бы сменилась картинка, и сброс класса соседней кнопки, при этом отобразится верхний див той кнопки которая была нажата, и скроется, если был отображен, див соседней кнопки, так вот с дивами проблем нет, появляются и скрываются нормально, а вот со сменами класса проблемы, если кликать отдельно кнопки то они нормально меняются, но мне надо что бы если кнопка была активна, тоесть сменился класс, сменилась картинка, и нажать вторую то у первой должен сменится класс и сменится картинка а этого не происходит в чем проблема?? может я чет упускаю?

    самое интересное для меня это :
    [js]$(".menu .bit_tex .active").ready(function(){
    $(this).toggleClass("active");
    $(".em1").hide();[/js]
    3-я строка нормально срабатует, тоесть скрывает див, а вот вторая, со сменой класса не пашет =(
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    А что ты хочешь добиться событием .ready?
    И во-вторых, обработчики в обработчиках... кривовато смотрится. ИМХО, куда более понятно и прозрачно просто внутри обработчика по кнопке делать проверку if ($(this).hasClass("active")) ....
     
  3. bookin

    bookin Активный пользователь

    С нами с:
    11 ноя 2009
    Сообщения:
    120
    Симпатии:
    0
    я вообще не работал с этим языком, именно в таком виде работает, и я исправил то из-за чего не работало но серавно не пойму в чем была ошибка догадываюсь правда =))

    [js]$(document).ready(function(){

    $(".menu .bit_tex .off").click(function() {
    $(this).toggleClass("active");
    $(".em1").show("slow");

    $(".menu .bit_tex .active").click(function(){
    $(".em1").hide();
    })


    $(".audi-video .active").ready(function(){
    $(".audi-video .active").toggleClass("active");
    $(".em2").hide();
    })

    $(".avto-elekt .active").ready(function(){
    $(".avto-elekt .active").toggleClass("active");
    $(".em3").hide();
    })

    });
    [/js]

    вот так работает