drag没有拖拽效果,dragend也不生效果
来源:4-3 打造支持拖拽的属性型指令

Allen_Liu_1106
2018-03-04
老师好,跟着视频做到这里,拖拽没有动画效果(item的展现效果不会跟着鼠标走),'dragstart'和'dragend'里面分别打印了log,只有dragstart被调用;
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可以使用,请问一下有没有啥办法能兼容火狐
00
Angular打造企业级协作平台,让你在Angular领域中出类拔萃
998 学习 · 536 问题
相似问题