используя jquery каждый, чтобы показать / скрыть при наведении - PullRequest
0 голосов
/ 27 октября 2011

У меня есть несколько ссылок с классом "myanchor".Я хочу отобразить div для каждой ссылки (onmouseover) и скрыть (onmouseout):

«link1» отображает «div1» «link2» отображает «div2».,.

Мой код, который не работает:

$(document).ready(function () {
        var n = $(".myanchor").length;
        var arr = [];
        for (var i = 1; i <= n; i++) {
            arr[i] = i;
        };

        jQuery.each(arr, function () {
            $("#anchor" + this, "#div" + this).mouseover(function () {
                $("#div" + this).show();
            }).mouseout(function () {
                $("#div" + this).hide();
            });
        });
    });

Спасибо.

Ответы [ 2 ]

5 голосов
/ 27 октября 2011

Нечто подобное должно сработать.Я предполагаю, что имена ссылок хранятся в атрибуте id ссылок:

$(".myanchor").hover(function() {
    var id = $(this).attr("id");
    $("#div" + id.charAt(id.length - 1)).show();
}, function() {
    var id = $(this).attr("id");
    $("#div" + id.charAt(id.length - 1)).hide();
});

Вот рабочий пример .Это устраняет необходимость в цикле each, поскольку методы jQuery, как правило, применяются ко всем элементам в сопоставляемом наборе (в данном случае это все элементы .myanchor).Использование hover немного короче, чем привязка к mouseover и mouseout по отдельности, но конечный результат тот же.

0 голосов
/ 27 октября 2011

это должно работать:

$(document).ready(function () {
            $(".myanchor").each(function(i){
              $(this).mouseover(function () {
                    $("#div" + i).show();
                }).mouseout(function () {
                    $("#div" + i).hide();
                });
            });
        });
...