Javascript 使用prototype(使用lowpro)时单击未处理的事件
我有一个JS代码,它使用lowpro(原型扩展)对一组动态生成的问题进行重新排序。因此,当我单击a.move-up时,我希望向上移动该元素的父元素。a.下移假设把它下移 我使用lowpro,因为元素是在dom:loaded之后生成的。 JS代码:Javascript 使用prototype(使用lowpro)时单击未处理的事件,javascript,prototypejs,lowpro,Javascript,Prototypejs,Lowpro,我有一个JS代码,它使用lowpro(原型扩展)对一组动态生成的问题进行重新排序。因此,当我单击a.move-up时,我希望向上移动该元素的父元素。a.下移假设把它下移 我使用lowpro,因为元素是在dom:loaded之后生成的。 JS代码: document.observe('dom:loaded', function() { Event.addBehavior( { 'a.move-up:click': function(event) { alert('Mo
document.observe('dom:loaded', function() {
Event.addBehavior( {
'a.move-up:click': function(event) {
alert('Moving up!')
//moveUp(this);
//event.stop();
},
'a.move-down:click': function(event) {
alert('Moving down!')
//moveDown(this);
//event.stop();
}
});
});
每个元素(div.question)都有两个链接,允许该元素上移或下移。但是,不会处理这些单击事件
<div id="questions">
<div class="question">Q1 stuff
<a href="#" class="move-up" />Up</a>
<a href="#" class="move-down"/>Down</a>
</div>
<div class="question">Q2 stuff
<a href="#" class="move-up" />Up</a>
<a href="#" class="move-down"/>Down</a>
</div>
</div>
Q1材料
Q2材料
作为调试的一部分,我将代码缩减到最低限度,只是试图确保事件处理工作正常。当我点击JS支持的链接时,我甚至没有看到警告弹出窗口。因此,“单击”事件没有得到正确处理
我做错了什么
谢谢大家! 在做了一些阅读/研究之后,我意识到动态生成的元素 等等 在加载DOM后未注册/绑定,因此需要重新加载addBehavior()-ed以获取新元素 因此,在动态生成新元素之后,必须调用
Event.addBehavior.reload();
在那个调用之后,新的动态生成的元素可以像我想要的那样上移/下移
我知道它必须是如此简单和明显的东西。。。叹气我无法重现您的问题,但至少要更正行
,谢谢您的排错修复。即使我把它修好了,也不会有任何影响。我终于找到了原因。见下面我的答案。