Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为HTML对象插入处理程序?_Javascript_Sencha Touch_Extjs - Fatal编程技术网

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

Javascript 如何为HTML对象插入处理程序?,javascript,sencha-touch,extjs,Javascript,Sencha Touch,Extjs,问题很简单 我有一个这样的物体: new Ext.Panel({ id: 'Panel', fullscreen: true, dockedItems: [ dock:..., width: ..., listeners: { el: /*TOUCHEVENTS*/ }, html: '<objec

问题很简单

我有一个这样的物体:

new Ext.Panel({

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

    });
新外部面板({
id:'面板',
全屏:对,
摘要:[
码头:。。。,
宽度:。。。,
侦听器:{el:/*TOUCHEVENTS*/},
html:'
]
});
如何在id=ObjectID的HTML对象上添加事件(如点击或挤压)

提前感谢;)

类似于:

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');
    });    
});
var p=新的外部面板({
id:'面板',
全屏:对,
摘要:[
html:'
]
});
p、 在('render',function()上{
Ext.get(“objectID”)。在('click',function()上{
警报('imclicket');
});    
});

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

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'     
                 }
            }
        }]
    });

}
});
Ext.setup({
onReady:function(){
//处理函数的定义
var myHandler=function(){
Ext.Msg.alert(‘什么?’,‘你敲我了吗?’);
};
//简单面板的定义
var p=新的外部面板({
全屏:对,
摘要:[{
xtype:'面板',
码头:“顶部”,
高度:'30',
html:'请点击我',
听众:{
正文:{
点击:myHandler,
代表:“#我的对象”
}
}
}]
});
}
});
如果您运行此代码,您将看到,当您点击“tap me Please!”div时,您的事件将被触发


希望这有帮助。

现在可以工作了,但控制台显示:“资源被解释为文档,但使用MIME类型image/svg+xml传输”,并且单击事件没有出现:(然后它
是另一个问题。尝试在不使用任何Ext.Panel的情况下,仅使用纯HTML和
Ext.get(“objectID”)。打开('click'`部分)。