JQuery - 包括JQuery会导致警报无法运行?

时间:2013-08-14 15:42:50

标签: javascript jquery

我正在尝试运行下面给出的代码(我已经简化了以解决问题)。当我排除脚本的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>

4 个答案:

答案 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代码