Документация для разработчиков
Темная тема

Класс BX.UI.SplitButton

Описание

Класс BX.UI.SplitButton позволяет создавать двойные кнопки. Двойная кнопка состоит из двух частей: основной и дополнительной кнопки. Каждая из них определяется классом BX.UI.SplitSubButton. BX.UI.SplitButton является наследником класса BX.UI.Button, поэтому задавать параметры можно как целой кнопке, так и отдельным ее частям.

new BX.UI.SplitButton([options])

Создает объект типа BX.UI.SplitButton с указанными настройками options.

  • options {Object}

    Коллекция опций кнопки. Все настройки являются необязательными. Так как BX.UI.SplitButton является наследником класса BX.UI.Button, то все опции констуктора BX.UI.SplitButton совпадают с настройками BX.UI.Button со следующими исключениями и дополнениями:

    • state {BX.UI.SplitButton.State}

      Состояние кнопки. Задается перечислением BX.UI.SplitButton.State.

    • mainButton {object}

      Настройки основной кнопки.

      • props {object.} — коллекция HTML-атрибутов кнопки.
      • onclick {function(BX.UI.SplitSubButton, MouseEvent)} — обработчик события нажатия мышью.
      • events {object.} — коллекция обработчиков событий.
      • tag {BX.UI.Button.Tag} — тег кнопки.
      • className {string} — дополнительный CSS-класс.
    • menuButton {object}

      Настройки дополнительной кнопки. Формат совпадет с настройками mainButton.

    • menuTarget {BX.UI.SplitSubButton.Type}

      Определяет кнопку, около которой покажется меню. Допустимые значения: BX.UI.SplitSubButton.Type.MAIN — основная кнопка. BX.UI.SplitSubButton.Type.MENU — дополнительная кнопка.

    • tag {BX.UI.Button.Tag}

      Параметр игнорируется. Указывается в настройках mainButton и menuButton.

    • round {boolean}

      Параметр игнорируется. Двойная кнопка не может быть круглой.

var splitButton = new BX.UI.SplitButton({
	id: "my-split-button",
	text: "Hello, Split Button!",
	noCaps: true,
	className: "ddddd-dddd",
	size: BX.UI.Button.Size.LARGE,
	color: BX.UI.Button.Color.PRIMARY,
	icon: BX.UI.Button.Icon.BUSINESS,
	//state: BX.UI.SplitButton.State.ACTIVE,
	menu: {
		items: [
			{ text: "Детальное описание", href: "/path/to/page" },
			{ text: "Редактировать", disabled: true },
			{
				text: "Перенести",
				onclick: function(event, item) {
					alert("Обработка нажатия на пункт");
				}
			},
			{ delimiter: true },
			{
				text: "Закрыть",
				onclick: function(event, item) {
					item.getMenuWindow().close();
				}
			}
		],
		offsetTop: 5
	},
	//menuTarget: BX.UI.SplitSubButton.Type.MENU,

	mainButton: {
		tag: BX.UI.Button.Tag.LINK,
		props: {
			href: "/"
		},
		onclick: function(button, event) {
			console.log("main button click", button, event);
			button.setActive(!button.isActive());
		},
		events: {
			mouseenter: function(button, event) {
				console.log("main button mouseenter", button, event);
			}
		},
	},

	menuButton: {
		onclick: function(button, event) {
			console.log("extra button click", button, event);
			button.setActive(!button.isActive());
		},
		props: {
			"data-abc": "123"
		},
		events: {
			mouseenter: function(button, event) {
				console.log("extra button mouseenter", button, event);
			}
		},
	},

	//Атрибуты для контейера двойной кнопки
	props: {
		id: "xxx"
	},

	//События для целой кнопки
	onclick: function(btn, event) {
		console.log("onclick", btn);
	},
	events: {
		click: function(splitButton, event) {
			splitButton.setActive(!splitButton.isActive());
			console.log("click", splitButton, event, this);
		},
		mouseenter: function(splitButton, event) {
			console.log("mouseenter", splitButton, event, this);
		},
		mouseout: function(splitButton, event) {
			console.log("mouseout", splitButton, event, this);
		}
	},
});

BX.UI.SplitButton наследует все экземлярные методы класса BX.UI.Button.

Другие методы

splitButton.getMainButton(): BX.UI.SplitSubButton

Возвращает объект основной кнопки.

splitButton.getMenuButton(): BX.UI.SplitSubButton

Возвращает объект дополнительной кнопки.

splitButton.setState(state:BX.UI.SplitButton.State): BX.UI.SplitButton

Устанавливает или сбрасывает состояние кнопки.

  • state {BX.UI.SplitButton.State} — состояние кнопки. Задается перечислением BX.UI.SplitButton.State. Чтобы установить состояние по умолчанию, необходимо указать значение null.


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх