jquery извършване на действие от първият път

NewGuy

Registered
Здравейте. Направих 1 функциика но имам малък проблем.

Код:
function makehover(addr,tested) {
    $("#"+addr+"").hover(
        function () {
            $(this).addClass(""+tested+"_over");
        },
        function () {
            $(this).removeClass(""+tested+"_over");
        }
        );
}

Извиквам я с onmouseover. Проблема е, първият път когато мина не сменя класа а вторият го прави. :roll:
 
Проблемът ти идва от там, че когато извикаш функцията и тя bind-не евентите, мишката ти е върху елемента, затова става от 2рия път.

Редактирах кода ти и добавих един клас за индикатор дали вече евентите са bind-нати на този елемент.
Надявам се, че нямаш клас hovered_once в css, че да не се омаже работата :D
Код:
function makehover(addr,tested) {
    $el = $("#"+addr);

    if( ! $el.hasClass("hovered_once") ){
        $el.addClass(tested+"_over");
        $el.addClass("hovered_once");
    }

    $el.hover(
        function () {
            $(this).addClass(""+tested+"_over");
        },
        function () {
            $(this).removeClass(""+tested+"_over");
        }
        );
}
 

Back
Горе