2016-03-15 54 views
0

我正在尝试以下代码以获取显示的吐司并将其隐藏在点按事件中。我不知道为什么,但它没有在某些场合显示吐司内容。在吐司身上显示空白的分机图标

还有,有没有什么办法来检查是否有一个现有的烤面包,因此我不能把另一个?

var me = this, 
      toastConfig = { 
       top: 10, 
       right: 10, 
       timeout: 5000, 
       hideOnMaskTap : true, 
       message: '<div style="text-align: left; font-size: 14px;">' + 
         ' <p style="font-size:12px;text-align: center;margin-bottom: 8px;">New Message</p>' + 
         ' <p><b>' + receivedMessage.Sender + ' : </b></p>' + 
         ' <p>' + Ext.util.Format.ellipsis(Ext.util.Format.htmlEncode(receivedMessage.MessageBody), 80) + '</p>' +       
         '</div>' 
      }; 

     var toastWindow = Ext.toast(toastConfig); 
     var msg_toast = document.getElementsByClassName('x-toast')[0]; 

     if(msg_toast){    
      msg_toast.addEventListener(
       "touchend", 
       function(){ 
        me.showMsgPanel(); 
        toastWindow.hide(); 
       }, 
       true 
      ); 
     } 

在此先感谢。

+0

ExtJS的哪个版本您使用的?如果6,哪个工具包? – JChap

+0

我正在使用版本2.4.2.571 – Ash

回答

0

我发现了这个潜在的问题。错在这里有两件事情: 为

  • 使用Ext.toast如单由煎茶可重用性
  • 连连装上监听器组件提供的

这并不是说Ext.toast是一个坏主意,但它不适合我的情况,因为我需要创建/处理单独的敬酒。

但是因为在使用相同的实例,它有问题的设置NEXT吐司内容的不透明度为0,因为我打乱了正常流量。此外,所有事件处理程序都将附加到同一个实例,并且所有事件都会在相同的TAP事件上触发。它正在冻结屏幕。

为了使它工作,我直接使用Ext.create('Ext.Toast')创建一个新的Toast实例并分别处理它。

使用后,我从DOM中删除元素。

下面是一些片段:

var toastWindow = Ext.create('Ext.Toast'); 
     toastWindow.show(toastConfig); 
     toastWindow.innerElement.dom.addEventListener(
      "touchend", 
      function(){ 
       toastWindow.hide(); 
       me.onMessageToastTap(receivedMessage); 
      }, 
      true 
     );