Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   bem как добавить onclick (https://javascript.ru/forum/dom-window/41591-bem-kak-dobavit-onclick.html)

linklee 20.09.2013 17:20

bem как добавить onclick
 
есть такое описание блока
{
                        .....
                        block: 'chat',
                        js: true,
                        content: [
                            {
                                elem: 'board'
                            },
                            {
                                elem: 'textbox'
                            }
                        ]
                       .....
                    },

есть chat__board.js
в неем такое
BEM.DOM.decl('b-chat', {

    onSetMod:{
        'js':function () {
            var _self = this,
                popup = this.findBlockInside({ elem: 'board' });
            
            popup.on('click', function(){
                alert(1);
            });

         //this.bindTo([elem], event, fn)


        }
    }

});

но че то неработает onclick в чем дело

Яростный Меч 20.09.2013 18:26

linklee,

во первых, у тебя указан block: 'chat', а надо block: 'b-chat', как в js (ну или в последнем поменять на BEM.DOM.decl('chat'...))

во вторых, не this.findBlockInside({ elem: 'board' });, а this.elem('board')

linklee 20.09.2013 18:58

BEM.DOM.decl('chat', {

    onSetMod:{
        'js':function () {
          /*      popup = this.findBlockInside({ block: 'chat' });
                popup.on('onclick', function(){
                alert(1);
            });     */
            var btn = this.elem('board');



            btn.on('click',function(){
                alert(1);
            });


        }
    }

});

ага)))))) конечный рабочий вариант))

linklee 23.09.2013 12:26

а вот так кстати на чат клик можно сделать
BEM.DOM.decl('chat', {

    onSetMod:{
        'js':function () {
            /*      popup = this.findBlockInside({ block: 'chat' });
             popup.on('onclick', function(){
             alert(1);
             });     */
            //var btn = this.block('board');



            this.bindTo('click',function(){
                alert("dsfsdds");
            });


        }
    }

});


Часовой пояс GMT +3, время: 23:04.