如果元素具有(click)处理程序,并且您在该元素中选择了一些文本,则会调用(click)处理程序。有办法防止这种情况吗? Here's a Plunkr说明了问题。相关代码:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2 (click)="handleClick()">Click or select this text</h2>
    </div>
  `
})
export class App {
  public handleClick() {
    alert('you clicked');
  }
}

最佳答案

使用此代码

public handleClick() {
  var selection = window.getSelection();
  if(selection.toString().length === 0) {
      alert('you clicked');
  }

}

关于 Angular (2/4): selecting text fires click event,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46785367/

10-10 04:16