2017-03-04 51 views
0

在手机上使用Angular 2(离子2),我有一个错误,我找不到任何类似的问题,所以我需要你的帮助。离子2 /角2:穿越点击触发2事件:在按钮和它后面的元素

我有一个textarea和上面的输入,当我点击输入时,键盘出现在上面的绝对块。在这个块中有一个“关闭”按钮,当我点击它时,它会触发hide()方法来编程关闭键盘,这很好,但之后,键盘会出现焦点在textarea中。 (“关闭”按钮位于textarea上方)。

它似乎像点击关闭按钮正在通过它,并点击textarea。

enter image description here

在图像它的红色按钮。当我点击它,键盘关闭和后面的textarea是焦点,有谁知道为什么?

谢谢。

编辑:

关闭按钮的代码:

public hide(){ 
     Keyboard.close(); 
    } 

HTML中的块:

<ion-grid class="keyboard-accessory"> 
    <ion-row> 
     <ion-col width-80> 
     <button ion-button tappable clear class="cancel" (tap)="hide()"> <ion-icon ios="ios-close" md="md-close"></ion-icon></button> 
     <input id="keyboardInput" #keyboardInput [(ngModel)]="text" (ngModelChange)="changeInputValue()" type="text"/> 
     <p id="keyboardTitle"></p> 
     </ion-col> 
     <ion-col width-20> 
     <button ion-button clear class="accept" (click)="validate()">Validate</button> 
     </ion-col> 
    </ion-row> 
    </ion-grid> 

我忘了说,该块是离子页脚内部,并且textarea中的离子含量,所以没有冒泡的效果。 使用stopPropagation或preventDefault不起作用。

+0

你可以添加关闭按钮的代码以及html –

+0

你试过停止传播吗? –

+0

是的,我试过了,但正如我所说,这不是一个冒泡的效果,他们不在同一个DOM树,所以它不起作用 –

回答

1

您可以使用css减小文本区域的大小,或使用 “npm install ionic2 autosize”对其进行自动调整大小。

+0

这可能是解决方案,但我仍然不明白为什么1点击激活2事件 –