1

以下のコードを実行しようとしています (問題を特定するために単純化しました)。スクリプトの一部を除外すると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

4 に答える 4

5

<script>1 つのブロックに「src」属性とインライン スクリプト コードの両方を含めることはできません。独自の<script>ブロック (インライン コンテンツなし) を使用して jQuery をインポートし、スクリプトを別のブロックに配置します。

厳密な DOCTYPE でコーディングしていない限り、「type」属性も必要ありません。

編集— また、jQuery をインポートしている (またはしようとしている) が、適切に使用していない:

var the_source = document.getElementById('the_source');

「getElementById」への呼び出しは、jQuery をインポートした後も、単純な古い DOM API 呼び出しのままです。jQuery API を使用する場合は、jQuery オブジェクトを作成する必要があります。

var the_source = $('#the_source');
于 2013-08-14T15:44:06.053 に答える
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>
于 2013-08-14T15:45:11.763 に答える