Получение правильного положения элемента возвращает неопределенное значение в jQuery

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

У меня есть этот фрагмент HTML, содержащий меню навигации:

  <div class="inner-wraper clearfix">
            <ul class="root">
                <li ng-repeat="menu in menus" class="l_one selected">
                    <a href="#" title="{{menu.Title}}">{{menu.Title}}<span class="arr"></span></a>
                    <ul ng-show="getHasSubMenus(menu)" class="level sl">
                        <li ng-repeat="subMenu in menu.SubMenus" class="l_two">
                            <a ui-sref="site.shopbycategory({ departmentID: subMenu.DepartmentID , categoryID: subMenu.CategoryID, searchTerm: '' })" title="{{subMenu.Title}}">{{subMenu.Title}}</a>
                        </li>
                    </ul>
                </li>                  
            </ul>
        </div>
  

Я хочу выровнять подменю по правильному положению элемента, содержащего ‘li’, я пытался:

 var theright = $(this).position().right;
  

и

 var theright = $(this).offset().right - $(this).parent().offset().right; 
  

и

 var theright = $(this).css('right');
  

используя следующий код jquery, но я всегда получаю Undefined и NAN вместо числового значения.

 $('.inner-wraper > ul').on('mouseenter', '> li', function (event) {

        var theright = $(this).position().right;
        //var theright = $(this).offset().right - $(this).parent().offset().right;                       
        //var theright = $(this).css('right');
        alert(theright);
        $(this).children('ul').css('right', theright);
    });
  

Как мне получить правильное положение элемента li?

Комментарии:

1. Position возвращает только значения left и top.. смотрите здесь. api.jquery.com/position

2. Я использовал left: var theright = $ (this).offset. осталось 130; и это работает

3. рад слышать. предполагая, что вы решили свою проблему