我正在使用YUI2 DataTable。 表中的某些行有一个图标按钮,单击该按钮将弹出该行的其他详细信息。
我正在执行以下操作来定义显示的面板以及其他信息:
MyContainer.panel2 = new YAHOO.widget.Panel("popupPanel2",
{ width:"650px", visible:false, constraintoviewport:true, overflow:"auto" } );
MyContainer.panel2.render();
YAHOO.util.Event.addListener("showButton2", "click",
MyContainer.panel2.show, MyContainer.panel2, true);
所以,一切都很顺利。然后我添加了一个按钮,当点击它时会过滤掉一些行。
MyContainer.oPushButton1.onclick = function onButtonClickp(p_oEvent)
{
var filter_val = "xxx";
myDataTable.getDataSource().sendRequest(filter_val,
{success: myDataTable.onDataReturnInitializeTable},myDataTable);
}
这会过滤并重绘表格。但在这样做之后,应该弹出面板的剩余行上的按钮不再起作用。 单击按钮时没有任何反应。 我确定我做错了什么,但我不知道是什么。具有正确ID的按钮和面板似乎仍在页面上可用。
在数据表重绘后,我是否必须以某种方式重新启用click事件的侦听器?我不确定在哪里尝试调试失败的监听器。
答案 0 :(得分:0)
我通过在重置数据源的数据后再次调用addListener来实现此功能。
MyContainer.oPushButton1.onclick = function onButtonClickp(p_oEvent)
{
var filter_val = "xxx";
myDataTable.getDataSource().sendRequest(filter_val,
{success: myDataTable.onDataReturnInitializeTable},myDataTable);
YAHOO.util.Event.addListener("showButton2", "click",
MyContainer.panel2.show, MyContainer.panel2, true);
}