2015-02-05 71 views
-5
// Private 
    makeRowsDraggable: function() { 
     var dragInitiated = false; 
     var startPageX, startPageY; 
     var moving; 

     var me = this; 

     $(this.el).interactable({ 
      start: function(e) { 
       if (e.which > 1 || me.disabled) 
        return true; 

       moving = $(e.target).closest(".draggable")[0]; 
       if (!moving) 
        return true; 
       moving = $(moving).closest("tr")[0]; 

       dragInitiated = false; 
       startPageX = e.pageX; 
       startPageY = e.pageY; 

       return false; 
      }, 

      move: function(e) { 
       // If value updates during a drag the row might disappear 
       if (!moving.parentNode) 
        return; 

       var DRAG_TOLERANCE = 4; 

// this line shows its event is not defined 
       if (!dragInitiated && (Math.abs(event.pageX - startPageX) > DRAG_TOLERANCE || Math.abs(event.pageY - startPageY) > DRAG_TOLERANCE)) 
        dragInitiated = true; 

       if (dragInitiated) { 
        var $rows = $(me.el).find(".glut-list-item"); 
        var y = e.pageY; 
        for (var i = 0; i < $rows.length; i++) { 
         var top = $($rows[i]).offset().top; 
         var height = $rows[i].offsetHeight; 
         if (y < top + height/2) 
          break; 
        } 

        var insertBefore = $rows[i]; 
        if (insertBefore) { 
         if (insertBefore == moving || insertBefore.previousSibling == moving) 
          return false; 
        } else if ($rows[i - 1] == moving) 
         return false; 

        moving.parentNode.insertBefore(moving, insertBefore); 

        me.refreshValue({ edit: true, dom: false }); 

        return false; 
       } 
      }, 

      stop: function() { 
       if (dragInitiated) 
        return false; 
      } 
     }); 
    }, 

錯誤在於未定義事件。事件在Firefox中不起作用

+1

變化'event'到'e' – 2015-02-05 18:02:30

+0

你怎麼能多少代碼這一點,不知道該怎麼 – Huangism 2015-02-05 20:14:57

+0

我相信複製PASE調試這個錯誤是一個好的開始;) – 2015-02-05 20:36:36

回答

0

您正在調用您傳遞給您的move函數e的變量,並且稍後將它稱爲event。您只需要在該行e的錯誤被拋出來代替event

0

您應該使用e.pageX, e.pageY而不是event.pageX, event.pageY,因爲在回調中,您使用e作爲參數。