extjs,php双击工作,我想一键工作

时间:2010-11-23 11:09:51

标签: extjs

在我的PHP代码中,我有一个包含行的表:

name             actions
category 1        edit
category 2        edit
.....             edit

每个编辑按钮都有一个ex:<a href="edit('.$raw['id'].')" id="show-btn'.$raw['id'].'">

的ID

现在我的功能编辑是:

var win;
var button;


function edit(idd){

    button = Ext.get('show-btn'+idd);

    button.on('click', function(){
        // create the window on the first click and reuse on subsequent clicks
        if(!win){


            win = new Ext.Window({
                applyTo:'hello-win',
                layout:'column',

                closeAction:'hide',
                plain: true,
                autoHeight:true,

                items: new Ext.FormPanel({
                    applyTo: 'hello-tabs',

                }),

                buttons: [{
                   text:'Modify',
                   handler: function(){

                        win.hide();
                        document.form_edit.submit();

                    }

                    },{
                        text: 'Close',
                        handler: function(){
                            win.hide();
                        }
                    }]
                });
        }
        win.show(this);

    });
};

此脚本完美无缺,但在点击小玩意时,我怎么能一键完成。

我现在问题出在button.on('click')

非常感谢,请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

似乎在第一次点击时添加了某种级别的功能,然后用于后续点击。我建议在console.log测试之前和之后,在编辑功能中放置警报或if(win)(如果您的浏览器支持它)。

我也很好奇 - 如果你试图让整个表执行此操作,那么win全局变量不会导致问题吗?

我认为你最好先预先获胜并使用本地变量:

function edit(idd){

   button = Ext.get('show-btn'+idd);
   // this can be moved into button.on('click', function(){, but that may be 
   // causing the problem...
   // come to think of it... the example here: 
   // http://dev.sencha.com/deploy/dev/examples/window/hello.js
   // has this inside the button.on method.  You may want to try it both ways.
   if(!button.win){

        button.win = new Ext.Window({
            applyTo:'hello-win',
            layout:'column',

            closeAction:'hide',
            plain: true,
            autoHeight:true,

            items: new Ext.FormPanel({
                applyTo: 'hello-tabs',

            }),

            buttons: [{
               text:'Modify',
               handler: function(){

                    win.hide();
                    document.form_edit.submit();

                }

                },{
                    text: 'Close',
                    handler: function(){
                        win.hide();
                    }
                }]
            });
    }
    button.on('click', function(){
        // the window already exists, so no need to worry about creating it.
        button.win.show(this);

    });
};

这可行吗?如果没有,我们需要查看更多代码。