Объект jQuery .on

Я изучаю jQuery, и у меня возникают некоторые проблемы с получением этого кода:

$(function () {
    $('body').on ({
        'mouseenter' : { /////// PROBLEMS!
            '.nav' : function () {
                $(this).fadeTo('fast', .50);
            }
        }
    });
});

Моя проблема в том, что с классом nav. Я предполагаю, что я не определяю это как дочерний элемент тела правильно. Какие-либо предложения?

2 ответа

Решение

Ваша проблема в том, что вы не получили синтаксис для jQuery.on()

Документация API говорит

.on(события [, селектор] [, данные], обработчик)

Итак... в вашем примере вы переходите к jQuery.on() только один аргумент: объект с одним ключом ("mouseenter") и другим объектом в качестве значения.

Правильный синтаксис в вашем случае должен быть примерно таким:

$(function () {
    $('body').on ('mouseenter', '.nav', function() {
        $(this).fadeTo('fast', .50);
    });
});

Надеюсь, поможет...


[Править] Исходя из комментария @jfriend00 ниже, вот альтернатива, которая больше похожа на вопрос ОП (хотя я думаю, что первый вариант более понятен)

$(function () {
    $('body').on ({
        'mouseenter': function() {
            $(this).fadeTo('fast', .50);
        }
    }, '.nav');
});

Пытаться:

$('body').on('mouseenter', '.nav', function () {
    $(this).fadeTo('fast', 0.5);
});
Другие вопросы по тегам