Как отменить всплывающее событие в таблице данных YUI?
Я пытаюсь создать таблицу данных YUI 2.8.1 со столбцом флажка. Когда пользователь выбирает строку, она должна выделяться, но не тогда, когда пользователь устанавливает флажок.
Я пытаюсь подавить rowClickEvent, установив cancelBubble = true
в checkboxClickEvent, но библиотека 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
});
2 ответа
Решение
Я обошел эту проблему, установив флажок для подавления щелчка строки, но мне все еще хотелось бы знать, как "правильно" отменить пузырь.
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;
});