aralejs / overlay

基础浮层组件。
aralejs.org/overlay/
15 stars 24 forks source link

属性trigger设置为多个选择器时的问题 #10

Closed b1ngx closed 11 years ago

b1ngx commented 11 years ago

当trigger设置为多个选择器时,只有第一个触发

$(this.get('trigger')).click(function() {
     that.show();
});

后续的选择器 that.show 也已调用,为什么不显示

afc163 commented 11 years ago

overlay 没有 trigger 属性,不知是不是用串了。

b1ngx commented 11 years ago

做一个类似dialog的弹框 点击触发元素的时候 只有第一个会显示 后面的调试的时候发现显示了 但是不知道为什么又关闭

afc163 commented 11 years ago

把你的代码放出来看看吧。

b1ngx commented 11 years ago

http://aralejs.org/overlay/examples/ 文档三这个例子 ,每个选择器要单独实例化么

var Layer = Overlay.extend({
        attrs : {
            trigger: null,
            template:'<div class="uiLayer">我在这呢</div>'
        },
        setup: function() {
            var that = this;
            Layer.superclass.setup.call(this);

            $(this.get('trigger')).click(function() {
                that.show();
            });
            // 需要调用这句话来实现功能
            this._blurHide(this.get('trigger'));
        },
        show:function(){
            Layer.superclass.show.call(this);
            this._setPosition();
            return this;
        }
    });

调用的时候:

new Layer({
        trigger: '.layer-trigger',
        align: {
            baseElement: '.layer-trigger',
            baseXY: ['100%', 0]
        }
    });
lizzie commented 11 years ago

这个扩展 Overlay 的例子确实需要多次实例化. 不过我觉得你需要的应该是 Popup, 你看下 http://aralejs.org/popup/examples/triggers.html ? 支持多个 trigger 的

b1ngx commented 11 years ago

是这样的 多谢了~ 没有看全面, 囧