jquery - offset().left 返回奇怪的值

标签 jquery jquery-plugins offset

这让我很烦恼。

我在一个元素上的 offset().left 得到了荒谬的值 -32567,边距不超过 200。 offset().top 工作正常。

代码:

(function( $ ) {

$.fn.draw = function( options ) {


    var settings = $.extend( {
        'width'  : null,
        'height' : null,
        'color' : '#000'
}, options);

return this.each(function() {        
    var o = settings;
    var obj = $(this);
    var offset = $(obj).offset();
    var c = o.color;
    var w = o.width;
    var h = o.height;
    var i = 0;
    var t, l = 0;

  $(obj).css('overflow','hidden');
   $(obj).css('position','relative');

  if(w != null){
      $(obj).css('width',w);
  }

  if(o.height != null ){
      $(obj).css('height',h);
  }




  $(obj).mousemove(function(e){
        var $mark = $('<div class="mark" id="mark'+i+'"/>');

        l = (e.pageX) - (offset.left);
        t = (e.pageY) - offset.top;
        $(this).append($mark);
        $("#mark"+i).css({
            'position' : 'absolute',
            'top' : t,
            'left' : l,
            'width' : '3px',
            'height' : '3px',
            'background' : c    
        });

        i++;
         }); 

});

};

})( jQuery );

我正在制作一个有趣的小插件,可以将任何 block 元素变成绘图板。当我只是在整个页面上使用鼠标位置且框位于 0,0 时,它起作用了。

现在我试图允许它出现在浏览器上的任何位置,这就是问题出现的地方。

您可以在以下位置找到它(不起作用):http://hangerdev.com/zacksplayground/

抱歉,如果我语无伦次。我该 sleep 了。

最佳答案

可能缺少 $(document).ready(),在控制台中输入 $("#box").offset().left 会为我返回 200,即使警报显示 -32k。

关于jquery - offset().left 返回奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016209/

相关文章:

javascript - 需要在jquery中访问autocomplete comboBox的ID

php - 在 Linux 上的二进制文件中提取到 x00 的特定偏移量之后的字符串

vba - 在 vba 中向下 move 行范围

php - 使用图标标志从数据库中设置选定值 select2

javascript - 调用参数列表的函数

javascript - 为什么我的 html 没有用 jQuery html() 显示?

jquery - 使用 IE8 居中并旋转图像 (jQueryRotate)

javascript - 用于表单验证的 JQuery 插件

php - SplFileObject + LimitIterator + 偏移量

javascript - 如何将 jQuery live() 函数应用于此代码?