2013-11-15 158 views
-1

输入代码的坐标hereIf你看看这个代码它被左边的div标签的坐标 - http://jsfiddle.net/JuPA4/3/这是相当多我需要什么。获得一个DIV标签

$(function() { 
    var position = $("#red11").offset(); 
    $("#amount").val(position.left); 
}); 

(我问的炒作论坛暂时还没有答案,现在3天)

Console error is (Uncaught TypeError: Cannot read property 'left' of undefined) not sure why as I can interact with the element!

黑点元素是出于某种原因,上面的代码公开发布到#black div标签内不适用于hype文件!我知道我可以与它进行交互,并且我已经向该页面添加了一个演示,单击隐藏/显示以与点进行交互。

我不是最好的JavaScript,所以如果任何人有任何想法,然后帮助将不胜感激。

这样做的最终结果是,无论对于左边和顶部的坐标更新为文本输入,所以我可以将它们放入一个数据库。

+0

这适用于我的Chrome。什么浏览器?另一种可能性是它执行得太早? dom完成绘图之前的含义。 – mangr3n

+1

什么是*炒作*?什么*黑点元素*? *点击隐藏/显示*在哪里?似乎有很多信息从您的问题 – Phil

+0

炒作丢失??????????? – ssilas777

回答

1

如果您在与任何元素不匹配的选择器上调用.offset(),它将返回undefined,并且看起来您的选择器在将“黑色”元素添加到DOM之前执行。你需要延迟你的代码,直到元素被添加到DOM之后。

可以为解决退房this question。它展示了一种观看DOM的方式。

或者你可以尝试像下面这只是尝试,等待,并再次尝试,直到元素有:

<script> 
function executeWhenExists(selector, wait, callback) { 
    if ($(selector).length > 0) { 
     callback(); 
    } else { 
     setTimeout(function() { executeWhenExists(selector, wait, callback) }, wait); 
    } 
} 

$(function() { 
    executeWhenExists("#black", 1000, function() { 
     var position = $("#black").offset(); 
     $("#amount").val(position.left); 
    }); 
}); 
</script> 

它甚至足以耽误您的代码,直到窗口的加载事件(而不是让它在文档的准备事件中运行)。这看起来像这样:

<script> 
$(window).on('load', function() { 
    var position = $("#black").offset(); 
    $("#amount").val(position.left); 
}); 
</script> 
+0

完成这项工作,但坐标不会立即更新,当你移动黑点,这意味着必须有JavaScript干扰它的炒作方面的东西,我认为我的解决方案是放弃炒作,因为它没有得到很好的支持并在我自己的html5和css3中完成。 感谢您的帮助约翰,非常感谢。 – Kevin

+0

今天早上我回到了代码,并在几分钟内通过点击按钮调用函数来解决它,所以不像原来的javascript那样更新生活,但它是一个合理的工作。 – Kevin