2015-09-17 39 views
1

拖放在其他浏览器工作正常,只是有问题的Firefox。fullcalendar事件拖放不工作在Firefox中

我已经阅读不够了解,Firefox有不同的机制进行拖放,但没有我发现已经帮助 试图实现jsEvent.preventDefault();的评注建议here 但是这并没有改变行为和林不知道如何实现该标记为答案部分,其确实event.originalEvent.dataTransfer.setData('text/plain', 'anything');

这是我的拖放代码:

设置可拖动TR

$('#workOrdersTable tbody tr').each(function() { 
    var tds = $(this).children('td'); 
    if (tds.length > 0) { 
     var workOrder = $.grep(workOrders, function(e) { 
      return e.woNumber == tds[0].innerText; 
     })[0]; 
     if (typeof workOrder !== "undefined" || workOrder !== null) { // store the Event Object in the DOM element so we can get to it later 
      $(this).data('workOrder', workOrder); 
      // make the event draggable using jQuery UI 
      $(this).draggable({ 
       zIndex: 999, 
       revert: true, // will cause the event to go back to its 
       revertDuration: 0 // original position after the drag 
      }); 
     } 

    } 
}); 

我怎样才能让这个工作在Firefox?

FullCalendar设置实现降

$('#calendar').fullCalendar({ 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    editable: false, 
    droppable: true, 

    //edit existing 
    eventClick: function(calEvent, jsEvent, view) { 
     populateEvent(calEvent, true); 
    }, 

    //create new 
    drop: function(date, jsEvent, ui) { 
     //alert('jsEvent '+jsEvent); 
     jsEvent.preventDefault(); 

     var workOrder = $(this).data('workOrder'); 
     workOrder.title = workOrder.woNumber + ' ' + workOrder.account 
     workOrder.description = workOrder.problemDescription; 
     workOrder.start = date; 
     workOrder.end = moment(date).add(1, 'hour'); //change default so the start and end dont match 
     populateEvent(workOrder, false); 
    }, 
+0

我也使用Firefox,并没有拖放问题。我只是在黑暗中拍摄,但你是否也有这个d&d的问题?:http://jsfiddle.net/VjNFn/16/ – Slyvain

回答

0

的问题是与数据设定到拖动行

var workOrder = $.grep(workOrders, function(e) { 
     return e.woNumber == tds[0].innerText; 
    })[0]; 

 var woNumberTemp = tds[0].textContent || tds[0].innerText; 
     var workOrder = $.grep(workOrders, function(e) { 
      return e.woNumber == woNumberTemp; 
     })[0]; 

Appearently铬tds[0].innerText需要的是好的,但火狐需要tds[0].textContent