1

たまにしか発生しない奇妙な問題があります。私の js ファイルには、ユーティリティ関数のセクションがあります。最終的に、jQuery ユーティリティ関数のセクションを追加しました (以下を参照)。コードはファイルの途中にありますが、クロージャーの内部にはありません。ファイルの script タグは、jQuery の sript タグの後に来ます。

時々、これを再現する方法がわかりませんが、コードは無限ループを実行し、以下に示すコードの 37 行目に変数 jQuery が見つからないというエラーが表示されます。アプリはほぼ完全に jQuery であるため、jQuery は明確に定義されています。また、問題ない場合がほとんどです。

一体何がこれを引き起こしているのでしょうか?

 (function ($) { 
      $.fn._draggable = function (draggable) { // for when html5 draggable and jquery ui draggable are not available.  
          // if there is only one element to be made _draggable an id for that element is not required.  
          // if more than one element is to be made draggable a unique id for each element should be used to avoid event handling collissions. 
         var $elm = this; 
         var id = $elm.attr("id") ? $elm.attr("id") : "tmp"; 
         if (draggable == false) { 
              $elm.off("mousedown." + id); 
              $(document).off("mouseup._draggable." + id); 
              $(document).off("mousemove._draggable." + id); 
              return; 
         } 
         else if(draggable == true) { 
              $elm.css("position", "absolute"); 
              $elm.on("mousedown." + id, function() { 
                  var position = $elm.position(); 
                  var oL = event.pageX - position.left; 
                  var oT = event.pageY - position.top; 
                  $(document).on("mousemove._draggable." + id, function (event) { 
                      $elm.css({ 
                          top: event.pageY - oT, 
                          left: event.pageX - oL 
                      }); 
                  }); 
                  $(document).on("mouseup._draggable." + id, function() { 
                      $(document).off("mouseup._draggable." + id); 
                      $(document).off("mousemove._draggable." + id); 
                  }); 
              }); 
          } 
      }; 

      $.fn.tagName = function () { 
          return this.prop("tagName").toLowerCase(); 
      }; 
  })(jQuery); 
4

0 に答える 0