YUI DataTable 按钮事件过滤后丢失

发布于 2024-12-06 12:18:01 字数 862 浏览 0 评论 0原文

我正在使用 YUI2 数据表。 表的某些行有一个图标按钮,单击该按钮将弹出该行的其他详细信息。

我正在执行以下操作来定义显示附加信息的面板:

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 的按钮和面板似乎仍然在页面上可用。

数据表重绘后,我是否必须以某种方式重新启用单击事件的侦听器?我不知道在哪里寻找尝试调试失败的侦听器。

I'm using a YUI2 DataTable.
Some of the rows of the tables have an icon button that when clicked on will popup additional details for the row.

I'm doing the following to define the panel which gets displayed with the additional information:

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); 

So, everything works well with that. Then I added a button that when clicked on filters out some of the rows.

MyContainer.oPushButton1.onclick = function onButtonClickp(p_oEvent) 
{
var filter_val = "xxx";
    myDataTable.getDataSource().sendRequest(filter_val,
        {success: myDataTable.onDataReturnInitializeTable},myDataTable);
} 

This filters and redraws the table. But after doing that, the buttons on the remaining rows that should popup a panel no longer work.
Nothing happens when I click on the buttons.
I'm sure I've done something wrong, but I don't know what. The buttons and panels with the correct id's still seem to be available on the page.

Do I somehow have to re-enable the listener for the click event after the datatable redraw? I'm not sure where to look for trying to debug the failed listener.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

波浪屿的海角声 2024-12-13 12:18:01

在重置数据源的数据后,我通过再次调用 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); 
} 

I got this working by making a call to addListener again after resetting the data for the Datasource.

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); 
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文