2017-05-07 104 views
0

1.我有一個項目在一個分區如何在項目拖到時間軸vis.js時獲取項目的範圍/ innerHtml?

2.我拖動這些項目,並在時間軸中下降。

3.so在放棄的時候。我想獲得特定項目的時間範圍。

  1. 我使用ng-draggable時間線vis.js庫。

項目在一個DIV代碼:)

<div class="timeline-elements-left-column"> 
       <md-card class="timeline-elements-container" 
          ng-repeat="element in vm.elementAndStages"> 
        <md-toolbar md-scroll-shrink class="timeline-selected-elements drag-object"> 
         <div layout="row" 
          id="translation-icon-move" 
          ng-drag="vm.isDragging" 
          ng-mousedown="vm.StartDragging(element, event)" 
          ng-drag-data="element"> 
          <div flex class="timeline-selected-elements-text"> 
           <span>{{element.selectedElement.description}}</span> 
          </div> 
          <div class="timeline-selected-elements-icon"> 
           <md-icon ng-show="element.selectedElement.collapsed" 
             class="zmdi zmdi-chevron-up" 
             ng-click="vm.Collapse(element.selectedElement)"> 
           </md-icon> 
           <md-icon ng-hide="element.selectedElement.collapsed" 
             class="zmdi zmdi-chevron-down" 
             ng-click="vm.Collapse(element.selectedElement)"> 
           </md-icon> 
          </div> 
          <div class="timeline-selected-elements-icon timeline-selected-elements-icon-drag"> 
           <md-icon class="zmdi zmdi-more-vert"></md-icon> 
          </div> 
         </div> 
        </md-toolbar> 
       </md-card> 
      </div> 

4.So這裏vm.StartDragging(是拖動事件的函數。

  • 所以在開始拖動功能

    功能StartDragging的時間(數據:階段,事件:任何){

    的console.log(this.timeline。 getEventProperties(事件)); }

  • 所以在拖動其工作正常的時候。

    1. 問題是在下降成功。
    2. 在時間軸上放下成功,但我無法獲得用戶在時間軸上放下該項目的範圍。在HTML中

      <div class="vis-group" ng-drop="true" ng-drop-success="vm.OnDropComplete($index, $data, $event,0)" ng-drag-stop="vm.StopDragging($event)" id="group0" style="height: 173px;"> 
      

    3. 滴代碼下面滴是好的。

      5.OnDropComplete功能碼

    OnDropComplete(指數:號碼,階段:任何,事件:任何,的groupId:數):無效{

    var indexToRemove: number = -1; 
        this.pendingChanges = []; 
    

    的console.log(此。 timeline.getEventProperties(事件)); }

    1. so console.log(this.timeline.getEventProperties(event));這行產生error.Here事件是好的,但event.target是未定義的。

    enter image description here

    回答

    1

    這是你試圖解決一個棘手的任務。由於vis時間軸是動態的(可以放大或滾動),因此您沒有可用作參考點的靜態點,以便刪除項目。 當我試圖解決類似問題時,我使用document.getElementFromPoint()(使用放置事件中的座標)和時間軸中的時間軸的組合來獲取用戶放置項目的最近點。使用這些信息,我會在特定位置添加該項目。

    我希望這能讓你走上正軌。

    相關問題