Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите исправить скрипт кнопки (https://javascript.ru/forum/dom-window/34423-pomogite-ispravit-skript-knopki.html)

fAmOus 04.01.2013 18:15

Помогите исправить скрипт кнопки
 
Всем привет.. я тут навоял своего, но не продумал детали, думал все будет работать.. но нет.
Собственно вот скрипт:
$(".create_acc_but").bind("mouseover", function (){
            $(".left_acc_but").addClass("left_acc_but_link");
            $(".middle_acc_but").addClass("middle_acc_but_link");
            $(".right_acc_but").addClass("right_acc_but_link");
        }).bind("mouseout", function (){
            $(".left_acc_but").removeClass("left_acc_but_link").removeClass("left_acc_but_down");
            $(".middle_acc_but").removeClass("middle_acc_but_link").removeClass("middle_acc_but_down");
            $(".right_acc_but").removeClass("right_acc_but_link").removeClass("right_acc_but_down");
        }).bind("mouseup", function (){
            $(".left_acc_but").removeClass("left_acc_but_down").addClass("left_acc_but_link");
            $(".middle_acc_but").removeClass("middle_acc_but_down").addClass("middle_acc_but_link");
            $(".right_acc_but").removeClass("right_acc_but_down").addClass("right_acc_but_link");
        }).bind("mousedown", function (){
            $(".left_acc_but").addClass("left_acc_but_down").removeClass("left_acc_but_link");
            $(".middle_acc_but").addClass("middle_acc_but_down").removeClass("middle_acc_but_link");
            $(".right_acc_but").addClass("right_acc_but_down").removeClass("right_acc_but_link");
        });

Мне нужно чтобы он работал со всеми блоками с классом .create_acc_but
А то данный скрипт работает только с первым найденным блоком с этим классом, другие просто не работают :(

Deff 04.01.2013 18:18

$(".create_acc_but").live("mouseover", function (){
            $(".left_acc_but").addClass("left_acc_but_link");
            $(".middle_acc_but").addClass("middle_acc_but_link");
            $(".right_acc_but").addClass("right_acc_but_link");
        }).live("mouseout", function (){
            $(".left_acc_but").removeClass("left_acc_but_link").removeClass("left_acc_but_down");
            $(".middle_acc_but").removeClass("middle_acc_but_link").removeClass("middle_acc_but_down");
            $(".right_acc_but").removeClass("right_acc_but_link").removeClass("right_acc_but_down");
        }).live("mouseup", function (){
            $(".left_acc_but").removeClass("left_acc_but_down").addClass("left_acc_but_link");
            $(".middle_acc_but").removeClass("middle_acc_but_down").addClass("middle_acc_but_link");
            $(".right_acc_but").removeClass("right_acc_but_down").addClass("right_acc_but_link");
        }).live("mousedown", function (){
            $(".left_acc_but").addClass("left_acc_but_down").removeClass("left_acc_but_link");
            $(".middle_acc_but").addClass("middle_acc_but_down").removeClass("middle_acc_but_link");
            $(".right_acc_but").addClass("right_acc_but_down").removeClass("right_acc_but_link");
        });

Цитата:

Сообщение от fAmOus
А то данный скрипт работает только с первым найденным блоком с этим классом, другие просто не работают

Суть в том что при смене класса - объект изменяется и привязка bind уже не работает - используйте live или on

fAmOus 04.01.2013 21:39

Deff,
Спасибо :))
Вот у меня вышел отлично работающий скриптик, но хотелось бы его как-то уменьшить.. это возможно?
$(".create_acc_but").live("mouseover", function (){
            $(this).find(".left_acc_but").addClass("left_acc_but_link");
            $(this).find(".middle_acc_but").addClass("middle_acc_but_link");
            $(this).find(".right_acc_but").addClass("right_acc_but_link");
        }).live("mouseout", function (){
            $(this).find(".left_acc_but").removeClass("left_acc_but_link").removeClass("left_acc_but_down");
            $(this).find(".middle_acc_but").removeClass("middle_acc_but_link").removeClass("middle_acc_but_down");
            $(this).find(".right_acc_but").removeClass("right_acc_but_link").removeClass("right_acc_but_down");
        }).live("mouseup", function (){
            $(this).find(".left_acc_but").removeClass("left_acc_but_down").addClass("left_acc_but_link");
            $(this).find(".middle_acc_but").removeClass("middle_acc_but_down").addClass("middle_acc_but_link");
            $(this).find(".right_acc_but").removeClass("right_acc_but_down").addClass("right_acc_but_link");
        }).live("mousedown", function (){
            $(this).find(".left_acc_but").addClass("left_acc_but_down").removeClass("left_acc_but_link");
            $(this).find(".middle_acc_but").addClass("middle_acc_but_down").removeClass("middle_acc_but_link");
            $(this).find(".right_acc_but").addClass("right_acc_but_down").removeClass("right_acc_but_link");
        });

Deff 04.01.2013 22:33

function Toggl(a){
            a.find(".left_acc_but,.middle_acc_but,.right_acc_but").toggleClass("left_acc_but_down").toggleClass("left_acc_but_link");
 }

        $(".create_acc_but").live("mouseover", function (){
            Toggl($(this));
        }).live("mouseout", function (){
            Toggl($(this));
        }).live("mouseup", function (){
            Toggl($(this));
        }).live("mousedown", function (){
            Toggl($(this));
        });


Часовой пояс GMT +3, время: 14:20.