如何插入 HTML 对象的处理程序?

发布于 2024-11-07 06:45:21 字数 414 浏览 0 评论 0原文

问题很简单!

我有一个像这样的对象:

new Ext.Panel({

        id: 'Panel',
        fullscreen: true,
        dockedItems: [
                  dock:...,
                  width: ...,
                  listeners: { el: /*TOUCHEVENTS*/ },
                  html: '<object id='objectID' data="blabla"/>'
        ]

    });

如何在 id= ObjectID 的 HTML 对象上添加事件(如点击或捏合)???

提前致谢 ;)

question is simple!

I have an object like this:

new Ext.Panel({

        id: 'Panel',
        fullscreen: true,
        dockedItems: [
                  dock:...,
                  width: ...,
                  listeners: { el: /*TOUCHEVENTS*/ },
                  html: '<object id='objectID' data="blabla"/>'
        ]

    });

How can i add an event (like tap or pinch) on the HTML object with id= ObjectID ???

Thanks in advance ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖公主 2024-11-14 06:45:21

我建议您使用事件委托来实现您的请求。
事件委托允许您在面板内部 HTML 对象的特定目标上设置点击侦听器。我写了一个示例来向您展示如何做到这一点:

Ext.setup({
onReady: function() {

    //Definition of a handler function
    var myHandler = function(){
        Ext.Msg.alert('What???','Did you Tap me?');
    };

    //Definition of a simple Panel
    var p = new Ext.Panel({
        fullscreen: true,
        dockedItems: [{
            xtype: 'panel',
            dock: 'top',
            height: '30',
            html: '<div id="myObject">Tap me please</div>',
            listeners: {
                body: {
                    tap: myHandler,
                    delegate: '#myObject'     
                 }
            }
        }]
    });

}
});

如果您运行此代码,当您点击“请点击我!”时,您会看到这一点。 div,您的事件将被解雇。

希望这有帮助。

I suggest you to use event delegation to makes possibile what you request.
Event delegation allow you to set tap listeners on a specific target on your panel inner HTML object. I write you an example that show you how to do that:

Ext.setup({
onReady: function() {

    //Definition of a handler function
    var myHandler = function(){
        Ext.Msg.alert('What???','Did you Tap me?');
    };

    //Definition of a simple Panel
    var p = new Ext.Panel({
        fullscreen: true,
        dockedItems: [{
            xtype: 'panel',
            dock: 'top',
            height: '30',
            html: '<div id="myObject">Tap me please</div>',
            listeners: {
                body: {
                    tap: myHandler,
                    delegate: '#myObject'     
                 }
            }
        }]
    });

}
});

If you run this code, you will see that, when you tap on the "Tap me Please!" div, your event will be fired.

Hope this helps.

青春有你 2024-11-14 06:45:21

像这样的东西:

var p = new Ext.Panel({
    id: 'Panel',
    fullscreen: true,
    dockedItems: [
        html: '<object id='objectID' data="blabla"/>'
    ]
});
p.on('render', function() {
    Ext.get("objectID").on('click', function() {
        alert('imclicket');
    });    
});

Something like:

var p = new Ext.Panel({
    id: 'Panel',
    fullscreen: true,
    dockedItems: [
        html: '<object id='objectID' data="blabla"/>'
    ]
});
p.on('render', function() {
    Ext.get("objectID").on('click', function() {
        alert('imclicket');
    });    
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文