2

我正在尝试创建一个带有复选框列的 YUI 2.8.1 DataTable。当用户选择它应该突出显示的行时,而不是当用户选中复选框时。

我试图通过cancelBubble = true在 checkboxClickEvent 中设置来抑制 rowClickEvent,但 YUI 库忽略了这一点。如何防止 rowClickEvent 触发?

this.testDataTable.subscribe("checkboxClickEvent", function (oArgs)
{
    var elCheckbox = oArgs.target;
    var oRecord = this.getRecord(elCheckbox);
    oRecord.setData("check", elCheckbox.checked);
    oArgs.event.cancelBubble = true; //Event bubbles anyway
});
4

2 回答 2

1

从 checkboxClickEvent 返回 false

于 2011-07-08T04:32:01.433 回答
0

我已经通过设置一个标志来抑制行点击来解决这个问题,但我仍然想知道如何“正确”取消气泡。

suppressHighlight = false;

this.testDataTable.onEventRowClick = function (oArgs)
{
    ...

    if (!suppressHighlight)
    {
        ...
    }
    suppressHighlight = false;
};
this.testDataTable.subscribe("rowClickEvent", this.testDataTable.onEventRowClick);

this.testDataTable.subscribe("checkboxClickEvent", function (oArgs)
{
    var elCheckbox = oArgs.target;
    var oRecord = this.getRecord(elCheckbox);
    oRecord.setData("Check", elCheckbox.checked);

    suppressHighlight = true;
});
于 2011-07-07T15:14:19.180 回答