2011-07-07 26 views
2

我想創建一個帶有複選框列的YUI 2.8.1 DataTable。當用戶選擇它應該突出顯示的行時,而不是在用戶選中複選框時。如何取消YUI DataTable中的事件冒泡?

我試圖通過在checkboxClickEvent中設置cancelBubble = true來抑制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 
}); 

回答

1

回報從checkboxClickEvent

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