【问题标题】:Fire event from hyperlink in Sencha Touch 2Sencha Touch 2 中超链接的触发事件
【发布时间】:2016-07-03 13:58:01
【问题描述】:

如何从普通的旧 html 链接触发事件(我想切换卡片视图)?

如果我在控件部分按 ID 引用链接,似乎没有触发我尝试过的任何事件(单击、点击)。

谢谢!

【问题讨论】:

  • 请分享您的代码

标签: extjs sencha-touch sencha-touch-2


【解决方案1】:

渲染链接后,您可以通过这种方式添加事件监听器:

Ext.get('[link id here]').on('click', function(){...}, this);

更新

如果您想在用户单击超链接后触发事件,您可以简单地添加this.fireEvent('[name of event here]');,但请注意此函数中的this 关键字含义,这样您就可以正确添加监听器。 ..有意义吗?

【讨论】:

  • 他问如何触发事件而不是监听
  • 嗯.. 所以我需要使用超链接切换卡片。是的,我可以创建一个随机侦听器来弹出一个警报框或其他东西,但是在我的控制器的 init 中使用 Ext.get... 似乎无法让我以与 control() 函数相同的方式访问切换视图。我试图触发这种情况发生:main = this.getIntroView();main.setActiveItem({xtype: intro});
  • 你能不能多贴一些代码,这样更容易理解你想要实现什么?
  • 好的,所以我有一个名为 main 的容器,它是一个卡片布局。其中一张卡片的 xtype 为“intro”。我想从另一张包含纯 html 链接的卡片滑到介绍卡片。我当前的代码适用于执行相同操作的按钮:init: function() { this.control({ 'mybutton': { tap: function(btn) { main = this.getMain(); main.setActiveItem ({ xtype: 'intro' }); 所以我希望我的 href 能够实现同样的效果。
  • 您的链接已经呈现时,您需要使用Ext.get。即不是在init 中进行事件订阅,而是在onRender 中进行事件订阅,或者在main 中订阅'afterrender' 事件。
【解决方案2】:

向包含链接的面板添加点击监听器。在示例中,标签具有“链接”类。你可以用你自己的 class/id 替换它,就像在 jQuery 中所做的那样。

listeners: {
    scope: this,
    itemtap: this.onItemtapAction,
    click: {
       element: 'el',
       fn: function (e) {
          if (e.getTarget('a.link')) {
              // Switch cards here
          }
    }
}

【讨论】:

    【解决方案3】:

    我使用简单的 Java 脚本为链接添加了一个监听器。

    首先,我为容器组件创建了一个“激活”监听器:

     ...
     listeners: {
            activate: function (newActiveItem, container, oldActiveItem, eOpts) {
                this.onActivate(newActiveItem, container, oldActiveItem, eOpts);
            }
        }
    ...
    

    这是我的功能:

    onActivate: function (newActiveItem, mainNavView, oldActiveItem, eOpts) {
            var me = this;
    
            document.getElementById('logOutLink').addEventListener("click",
               function(){
                   me.onLogOut();
               }, false);
           },
    onLogOut:function(){
            alert('log out');
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多