我正在尝试运行下面给出的代码(我已经简化了以解决问题)。当我排除脚本的src
部分(即省略JQuery的源代码)时,警报将正常运行,但会导致错误Uncaught TypeError: Object #<HTMLImageElement> has no method 'offset'
。这是因为没有包含JQuery。但是,当我添加src
部分时(如下所示),我没有得到任何错误或警告,但代码并没有尽我所能。具体来说,没有警报(或其他任何东西)。我猜我只是在如何包含JQuery时犯了一些愚蠢的错误,但我不确定它是什么。有什么建议?非常感谢!
<script src="/js/jquery-2.0.3.min.js" type="text/javascript" >
getPosition = function() {
var the_source = document.getElementById('the_source');
var offset = the_source.offset();
var x_position = e.clientX - offset.left;
var y_position = e.clientY - offset.top;
alert(e.clientX - offset.left);
alert(e.clientY - offset.top);
}
initialize = function() {
alert('check');
getPosition();
}
setTimeout(initialize, 100);
</script>
答案 0 :(得分:5)
您不能在单个<script>
块中同时拥有“src”属性和内联脚本代码。使用自己的<script>
块导入jQuery(没有内联内容),然后将脚本放入另一个。
除非您使用严格的DOCTYPE进行编码,否则您也不需要“type”属性。
编辑 - 此外,您正在导入jQuery(或尝试)但未正确使用它:
var the_source = document.getElementById('the_source');
在导入jQuery之后,对“getElementById”的调用仍然是一个普通的旧DOM API调用。如果你想使用jQuery API,你必须创建一个jQuery对象:
var the_source = $('#the_source');
答案 1 :(得分:3)
src
属性仅适用于脚本引用,而不是脚本块,您需要这样做:
<script src="/js/jquery-2.0.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
// Your script here
</script>
答案 2 :(得分:1)
您需要将jquery和您自己的代码分开。
<script src="/js/jquery-2.0.3.min.js" type="text/javascript" ></script>
<script>
getPosition = function() {
var the_source = document.getElementById('the_source');
var offset = the_source.offset();
var x_position = e.clientX - offset.left;
var y_position = e.clientY - offset.top;
alert(e.clientX - offset.left);
alert(e.clientY - offset.top);
}
initialize = function() {
alert('check');
getPosition();
}
setTimeout(initialize, 100);
</script>
答案 3 :(得分:1)
您需要将jQuery包含在自己的script
标记中。
对于内联脚本,请使用单独的script
代码