2

我正在尝试使用prototype.js 和script.aculo.us 创建一个简单的画廊。为了处理左右箭头,我编写了这段代码,但它不起作用

Gallery.Arrow = Class.create(document.createElement('a'), {
  initialize: function(listener) {
    this.on('click', listener);
    this.addClassName('xjsl-arrow');
  }
});

this.on未定义。我在初始化函数中尝试了 Class.create($(document.createElement('a')), ...甚至Element.extend(this),但没有任何效果。

如果我尝试了 Event.Handler(this, 'click', listener),但错误来自prototype.js库中的element.attachEvent 。

是否可以基于 HTML 元素创建一个类?

4

1 回答 1

0

尝试像这样基于 Element.Methods 命名空间构建类

Gallery.Arrow = Class.create(Element.Methods, {
    initialize: function(element,listener) {
        this.on(element,'click', listener);
        this.addClassName(element,'xjsl-arrow');
    }
});

jsfiddle 示例http://jsfiddle.net/rPLA8/

于 2013-09-19T16:17:41.247 回答