Как я могу использовать "attr ()" в JQuery так, как я хочу? - PullRequest
0 голосов
/ 26 октября 2018

Вот мой код:

let timer = {};
$('#menu_top li').hover(function () {
    let tag = $(this);
    let timerAttr = tag.attr('data-timer');
    let menudowniconrotate = $('#menu_top span').attr('id') ;
    alert(menudowniconrotate) ;

    clearTimeout(timer[timerAttr]);
    timer[timerAttr] =setTimeout(function () {
        $('#'+ menudowniconrotate).css({
            "-webkit-transform": "rotate(180deg)",
            "-moz-transform": "rotate(180deg)",
            "transform": "rotate(180deg)"});
        $(' > ul', tag).fadeIn(200);
        tag.addClass('activemenu') ;
        $(' > .submenu3', tag).fadeIn(200) ;
    }, 300)

Я хочу получить информацию об атрибутах для каждого тега span в моем коде отдельно. Когда я наводю указатель мыши на тег li, который содержит этот тег span, он работает отлично. Когда я пытаюсь получить атрибуты из тегов li, но он просто получает первый span в первом атрибуте тега li с функцией attr() независимо от того, наведу ли я указатель мыши на любой доступный тег li ... .

1 Ответ

0 голосов
/ 28 октября 2018

Ваш селектор $('#menu_top span') выбирает все элементы span под родительским элементом #menu_top.Когда вы пытаетесь выбрать атрибут id возвращаемого массива, возвращаемое значение всегда будет id от первого элемента в массиве.

Чтобы исправить возникшую проблему, используйте $(this).find('span') длявыберите элемент span текущего в настоящий момент li.

...