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'`部分)。