Создание функции jquery для анимации непрозрачности изображения не работает

0
function color_fadein(element,val1){
    $(this).children(element).stop().animate({
    opacity: val1,
    }, 200);
}

function color_fadeout(element,val2){
    $(this).children(element).stop().animate({
    opacity: val2,
    }, 200);
}

$('.post').hover(color_fadein('img','0.5'),color_fadeout('img', '1'));

Почему это не работает? инструменты разработчика Chrome не возвращают никакой ошибки однако оно не работает. Пожалуйста, помогите мне

Теги:
function
filter
animation

2 ответа

0
Лучший ответ

Вам нужно создать функцию обертки: и передать this: (также я бы использовал find а не children чтобы он find глубже)

function op_fadein(t,element,val1){

    $(t).find(element).stop().animate({
    opacity: val1,
    }, 200);
}

function op_fadeout(t,element,val2){

    $(t).find(element).stop().animate({
    opacity: val2,
    }, 200);
}

$('.post').hover(function (){op_fadein(this,'img','0.5')},function (){op_fadeout(this,'img', '1')});

http://jsbin.com/OgOdak/1/edit

Изображение 174551

  • 1
    Да, это работает сейчас. Большое спасибо :)
0

Пройдите через this в функцию, подобную этой, если "img" не является прямым потомком использования.find() вместо children()

function op_fadein(that, element, val1) {
    $(that).children(element).stop().animate({
        opacity: val1,
    }, 200);
}

function op_fadeout(that, element, val2) {
    $(that).children(element).stop().animate({
        opacity: val2,
    }, 200);
}

Добавить function(){} в наведении так:

$('.post').hover(function () {
    op_fadein(this, 'img', '0.5')
}, function () {
    op_fadeout(this, 'img', '1')
});

DEMO

Ещё вопросы

Сообщество Overcoder
Наверх
Меню