drag没有拖拽效果,dragend也不生效果

来源:4-3 打造支持拖拽的属性型指令

Allen_Liu_1106

2018-03-04

老师好,跟着视频做到这里,拖拽没有动画效果(item的展现效果不会跟着鼠标走),'dragstart'和'dragend'里面分别打印了log,只有dragstart被调用;

http://img.mukewang.com/szimg/5a9bd75200014e4f08910452.jpg

dragdirective:

@Directive({
 selector: '[app-draggable][draggedClass]'
 //selector: '[app-droppable][draggedClass]',
})
export class DragDirective {
 private _isDraggable=false;

 @Input() draggedClass:string;

 @Input('app-draggable')
 set isDraggable(drag1:boolean){
   this._isDraggable=drag1;
   //alert(this.draggedClass);
  //  alert(this._isDraggable);
   this.rd.setAttribute(this.el.nativeElement,'draggable',`${drag1}`);
 }

 get isDraggable(){
   return this._isDraggable;
 }


 constructor(private el:ElementRef,private rd:Renderer2) { }
 @HostListener('dragstart',['$event'])
 onDragStart(ev:Event){

   console.log('start');
   //alert('drag start');
   if(this.el.nativeElement===ev.target){
     //alert(this.el.nativeElement);
     this.rd.addClass(this.el.nativeElement,this.draggedClass);
   }

 }
 @HostListener('dragend',['$event'])
 onDragEnd(ev:Event){
   console.log('remove');
   if(this.el.nativeElement===ev.target){

     this.rd.removeClass(this.el.nativeElement,this.draggedClass);
   }

 }
}

task-item-component.html:

<md-list-item class="container"
[@item]="widerPriority"

[ngClass]="{
'priority-normal':item.priority===3,
'priority-important':item.priority===2,
'priority-emergency':item.priority===1
}"
 [app-draggable]="true"
 [draggedClass]="'drag-start'"
(click)="onItemClick()"
>


写回答

1回答

Allen_Liu_1106

提问者

2018-03-05

补充一下,当前选择的浏览器是firefox,试过用google可以使用,请问一下有没有啥办法能兼容火狐

0
0

Angular打造企业级协作平台,让你在Angular领域中出类拔萃

全网首个介绍官方 Material 组件库用法与 Redux 在 Angular 中的应用

998 学习 · 536 问题

查看课程