12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- define([
- 'jquery',
- 'jquery/ui'
- ], function ($) {
- 'use strict';
- $.widget('mage.actionLink', {
- /**
- * Button creation
- * @protected
- */
- _create: function () {
- this._bind();
- },
- /**
- * Bind handler on button click
- * @protected
- */
- _bind: function () {
- var keyCode = $.ui.keyCode;
- this._on({
- /**
- * @param {jQuery.Event} e
- */
- mousedown: function (e) {
- this._stopPropogation(e);
- },
- /**
- * @param {jQuery.Event} e
- */
- mouseup: function (e) {
- this._stopPropogation(e);
- },
- /**
- * @param {jQuery.Event} e
- */
- click: function (e) {
- this._stopPropogation(e);
- this._triggerEvent();
- },
- /**
- * @param {jQuery.Event} e
- */
- keydown: function (e) {
- switch (e.keyCode) {
- case keyCode.ENTER:
- case keyCode.NUMPAD_ENTER:
- this._stopPropogation(e);
- this._triggerEvent();
- break;
- }
- },
- /**
- * @param {jQuery.Event} e
- */
- keyup: function (e) {
- switch (e.keyCode) {
- case keyCode.ENTER:
- case keyCode.NUMPAD_ENTER:
- this._stopPropogation(e);
- break;
- }
- }
- });
- },
- /**
- * @param {Object} e - event object
- * @private
- */
- _stopPropogation: function (e) {
- e.stopImmediatePropagation();
- e.preventDefault();
- },
- /**
- * @private
- */
- _triggerEvent: function () {
- $(this.options.related || this.element)
- .trigger(this.options.event, this.options.eventData ? [this.options.eventData] : [{}]);
- }
- });
- return $.mage.actionLink;
- });
|