Using 2.1.3, I've been trying to bind page elements to internal javascript widget methods, and have been unsuccessful - the docs (http://devdocs.magento.com/guides/v2.0/coding-standards/code-standard-jquery-widgets.html) use the following format: _bind: function() { this._on({ 'click [data-role="menu-item"]:has([data-role="link"])': this._selectItem }); } but within `vendor/magento/module-customer/view/adminhtml/web/edit/tab/js/addresses.js`, there is another format: _bind: function () { this._on(this.element.find(this.options.addAddressButtonSelector), { 'click': '_addNewAddress' }); } Is there a preferred format? Neither has been working for me yet. **Update**: This format is working for me (from `vendor/magento/theme-adminhtml-backend/web/js/theme.js`): Declare target DOM elements in `_create()`: _create: function () { var selectors = this.options.selectors; this.menu = this.element; this.menuLinks = $(selectors.topLevelHref, selectors.topLevelItem); this.closeActions = $(selectors.closeSubmenuBtn); this._initOverlay() ._bind(); }, Then bind widget functions to those elements in `_bind()`: _bind: function () { var focus = this._focus.bind(this), open = this._open.bind(this), blur = this._blur.bind(this), keyboard = this._keyboard.bind(this); this.menuLinks .on('focus', focus) .on('click', open); this.menuLinks.last().on('blur', blur); this.closeActions.on('keydown', keyboard); }, I'd still love to know the preferred/best practice format...