Control.removeEvent

Синтаксис

removeEvent (elem: HTMLElement, eventName: String, func: Function)

Параметры

elem. DOM-вершина для отписки от события;

eventName. Имя события;

handler. Обработчик события;

Описание

Метод removeEvent удаляет обработчик события у DOM-вершины.

Пример

Для выполнения примера необходимо наличие на html-странице ссылок на файлы сценария PP.js и файл стилей PP.css, в теге <body> html-страницы элемента <div> с идентификатором «container». В событии onload тега <body> необходимо указать вызов функции createContainer(). Добавляем на страницу таблицу с 2 кнопками:

function createContainer() {
    // Создаем 1 кнопку
    button1 = new PP.Ui.Button();
    // Создаем 2 кнопку
    button2 = new PP.Ui.Button({
        //Устанавливаем содержимое кнопки
        Content: "Кнопка 2"
    });
    // Создаем таблицу для кнопок
    container = new PP.Ui.GridPanel({
        // Устанавливаем родительский элемент
        ParentNode: document.getElementById("container"),
        // Устанавливаем объект с данными
        DataContext: { Data: "data" }
    });
    // Добавляем кнопки в таблицу
    container.add(button1);
    container.add(button2);    
    // Получаем функцию установки содержимого элемента
    var func = button1.getFunctionByName("setContent");
    // Вызываем функцию для установки содержимого 1 кнопке
    func.apply(button1, ["Кнопка 1"]);
}

Создаем обработчики следующих событий: наведение курсора мыши на кнопку 1, нажатие кнопки мыши по кнопке 1, зажатие кнопки мыши на кнопке 1. Добавляем созданные обработчики к кнопке 1:

// Создаем обработчик события наведения курсора мыши на кнопку 1
var mouseOver = function (sender, args) { console.log("Произошло наведение курсора на кнопку 1") };
// Создаем обработчик события нажатия на кнопку 1
var click = function (sender, args) { console.log("Произошло нажатие по кнопке 1") };
// Создаем обработчик события зажатия кнопки мыши на кнопке 1
var mouseDown = function (sender, args) { console.log("Произошло зажатие кнопки мыши на кнопке 1") }
// Добавляем обработчик события нажатия кнопки мыши по кнопке 1
button1.addEvents(button1.getDomNode(), { click: click, mouseover: mouseOver }, false);
// Добавляем обработчик события зажатия кнопки мыши на кнопке 1
button1.addEvent(button1.getDomNode(), "mousedown", mouseDown, false);

Нажимаем кнопкой мыши на кнопке 1, в результате в консоль будет выведена информация о событиях:

Произошло наведение курсора на кнопку 1

Произошло зажатие кнопки мыши на кнопке 1

Произошло нажатие по кнопке 1

 

Удаляем обработчик события наведения курсора мыши на кнопку 1:

// Удаляем обработчик события наведения курсора мыши на кнопку 1
button1.removeEvent(button1.getDomNode(), "mouseover", mouseOver);

Снова нажимаем кнопкой мыши на кнопке 1, в результате в консоль будет выведена информация о событиях:

Произошло зажатие кнопки мыши на кнопке 1

Произошло нажатие по кнопке 1

 

Создаем обработчик события наведения курсора мыши на кнопку 2 и добавляем его к кнопке 2:

// Создаем обработчик события наведения курсора мыши на кнопку 2
var delegate = new PP.Delegate(function (sender, args) { console.log("Курсор наведен на кнопку 2") });
// Устанавливаем обработчик события наведения курсора мыши на кнопку 2
button2.addEventHandler("MouseOver", delegate);

Нажимаем кнопкой мыши на кнопку 2, в результате в консоль будет выведена информация о событии наведения курсора на кнопку 2:

Курсор наведен на кнопку 2

 

Проверяем подписана ли кнопка 2 на события:

// Проверяем, подписана ли кнопка 2 на события
if (button2.getIsBinded()) {
    console.log("Кнопка 2 подписана на все события");
} else {
    console.log("Кнопка 2 отписана от всех событий");
}

В результате в консоль будет выведен результат проверки подписки кнопки 2 на события:

Кнопка 2 подписана на все события

 

Отписываем кнопку 2 от всех событий, на которые подписан компонент:

// Отписываем кнопку 2 от всех событий, на которые она подписана
button2.unBindEvents();

Нажимаем кнопкой мыши на кнопку 2. Ничего не произойдет, потому что кнопка 2 отписана от всех событий.

Снова подписываем кнопку 2 на все события:

// Подписываем кнопку 2 на все стандартные события
button2.bindEvents();

В результате кнопка снова будет реагировать на все события, на которые подписана.

Удаляем обработчик события наведения курсора мыши на кнопку 2:

// Удаляем обработчик события наведения курсора мыши на кнопку 2
button2.removeEventHandler("MouseOver", button2.MouseOver);

В результате при наведение курсора мыши на кнопку 2 никакие сообщения выводиться не будут.

Добавляем новый класс кнопке 1, создаем стиль, у которого текст имеет синий цвет и устанавливаем этот цвет всем элементам таблицы, которые имеют класс "newClass". Устанавливаем стиль с фиолетовым текстом кнопке 2 и обновляем ее стиль:

// Добавляем новый класс DOM-вершине кнопки 1
button1.addClass("newClass");
// Создаем стиль, у которого текст имеет синий цвет
var style = new PP.Style({ Font: { Color: "#60A1FA" } });
// Устанавливаем новый стиль всем элементам таблицы, которые имеют класс "newClass"
container.addStyleBySelector(style, "div[class*='newClass']", true);
// Устанавливаем новый стиль 2 кнопке и обновляем ее стиль
button2._Style = { Release: new PP.Style({ Font: { Color: "#A020F0" } }) };
button2.refreshStyle();

В результате у кнопки 1 текст будет синего цвета, а у кнопки 2 текст будет фиолетового цвета:

См. также:

Control