在我的PHP代码中,我有一个包含行的表:
name actions
category 1 edit
category 2 edit
..... edit
每个编辑按钮都有一个ex:<a href="edit('.$raw['id'].')" id="show-btn'.$raw['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')
非常感谢,请帮我解决这个问题
答案 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);
});
};
这可行吗?如果没有,我们需要查看更多代码。