Jquery 如何避免偏移量()的十进制值。左

Jquery 如何避免偏移量()的十进制值。左,jquery,html,css,Jquery,Html,Css,我正在使用构建一个弹出式菜单 例如: <ul class="uiMenu"> <li>One <ul> <li>Test Child</li> </ul> </li> <li>Two <ul> <li>Test Child 2</li>

我正在使用
构建一个弹出式菜单

例如:

<ul class="uiMenu">
    <li>One
        <ul>
           <li>Test Child</li>
        </ul>
    </li>
    <li>Two
         <ul>
           <li>Test Child 2</li>
        </ul>
    </li>
    <li>Three</li>
</ul>
  • 一个
    • 测试儿童
  • 两个
    • 测试儿童2
因此,菜单的
偏移量
的弹出按钮应该是父菜单项的
偏移量

当我遍历每个父对象时,我注意到偏移量是十进制值。 但在IE的旧版本中,它们不是,只是为了简单起见,我想避免十进制偏移

有没有办法确保偏移值最终是整数


您可以使用parseInt(offsetValue)方法。这将对小数进行四舍五入。

您可以使用parseInt(offsetValue)方法。这将对小数进行四舍五入。

只需使用
Math.round()
/
Math.floor()


只需使用
Math.round()
/
Math.floor()


一个巧妙的javascript技巧是,左移零位将截断任何小数位,实际上与
Math.floor()的操作相同。
例如

/*此==1*/

1.3一个简洁的javascript技巧是,左移零位将截断任何小数点,实际上与
Math.floor()相同。
例如

/*此==1*/

1.3它迭代“uiMenu”中的所有LI元素。以获得更好且无冲突的代码。向顶级标题列表提供ID

<ul class="uiMenu">
    <li class="title">One
        <ul>
           <li>Test Child</li>
        </ul>
    </li>
    <li class="title">Two
         <ul>
           <li>Test Child 2</li>
        </ul>
    </li>
    <li class="title">Three</li>
</ul>

它迭代“uiMenu”中的所有LI元素。以获得更好且无冲突的代码。向顶级标题列表提供ID

<ul class="uiMenu">
    <li class="title">One
        <ul>
           <li>Test Child</li>
        </ul>
    </li>
    <li class="title">Two
         <ul>
           <li>Test Child 2</li>
        </ul>
    </li>
    <li class="title">Three</li>
</ul>
使用

$(文档).ready(函数(){

}))

使用

$(文档).ready(函数(){


}))

不,这不会解决问题,因为我以此为基础的元素的偏移量仍然是十进制值,使弹出菜单与父项不对齐。不,这不会解决问题,因为我以此为基础的元素的偏移量仍然是十进制值,使弹出菜单与父项不对齐。
<ul class="uiMenu">
    <li class="title">One
        <ul>
           <li>Test Child</li>
        </ul>
    </li>
    <li class="title">Two
         <ul>
           <li>Test Child 2</li>
        </ul>
    </li>
    <li class="title">Three</li>
</ul>
  $('.title ').each(function(){
          console.log('offset().left: ' + $(this).offset().left);
        }); 
$('.uiMenu > li').each(function(){

    console.log('offset().left: ' + parseInt($(this).offset().left));
});