gpt4 book ai didi

mootools - 使用 addEvent 元素无法正常工作?

转载 作者:行者123 更新时间:2023-12-02 08:00:25 25 4
gpt4 key购买 nike

用头撞这个,开始疼了。

我在向元素添加事件时遇到问题。我可以添加事件,然后立即使用 element.fireEvent('click') 调用它,但是一旦元素附加到 DOM,它就不会对单击使用react。

示例代码:

var el = new Element('strong').setStyle('cursor','pointer');
el.addEvent('click',function () { alert('hi!'); });
el.replaces(old_element); // you can assume old_element exists
el.fireEvent('click'); // alert fires

但是,一旦我将其附加到 DOM,该元素就不会响应单击。样式粘住(当我将鼠标悬停时光标是指针),但没有事件触发。也尝试过鼠标悬停,但无济于事。

这里有什么线索吗?我错过了一些基本的东西吗?我在所有地方都这样做,但在这个例子中它不起作用。

编辑----------------

好的,这里还有一些代码。不幸的是,我无法公开真正的代码,因为它是一个仍处于严格保密状态的项目。

基本上,所有节点都被选为“可替换”,然后在 rel=""属性中找到的 json 设置了应该替换的阶段。在这个特定的实例中,替换的元素是一个用户名,单击时应该弹出一些信息。

同样,如果我在附加事件后直接触发事件,一切都很好,但元素在附加后不会对单击使用react。

HTML----------

<p>Example: <span class='_mootpl_' rel="{'text':'foo','tag':'strong','event':'click','action':'MyAction','params':{'var1': 'val1','var2': 'val2'}}"></span></p>

JAVASCRIPT-----假设:1. 下面两个函数是一个更大类的一部分2. ROOTELMENT在initialize()中设置3. MyAction 在任何解析发生之前定义(并在 .fireEvent() 测试中正确处理)

parseTemplate: function() {
this.ROOTELEMENT.getElements('span._mootpl_').each(function(el) {
var _c = JSON.decode(el.get('rel'));
var new_el = this.get_replace_element(_c); // sets up the base element
if (_c.hasOwnProperty('event')) {
new_el = this.attach_event(new_el, _c);
}
});
},

attach_event: function(el, _c) {
el.store(_c.event+'-action',_c.action);
el.store('params',_c.params);
el.addEvent(_c.event, function() {
eval(this.retrieve('click-action') + '(this);');
}).setStyle('cursor','pointer');
return el;
},

最佳答案

工作得很好。测试用例:http://jsfiddle.net/2GX66/

关于mootools - 使用 addEvent 元素无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6313097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com