Here’s a Workaround for this issue:
The old code design where “Go to Definition” doesn’t work:
(function ($) {
'use strict';
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
loaded = false,
ie11 = window.navigator.userAgent.indexOf('Trident/7.0') > 0;
$.pascal = $.pascal || {};
$.pascal.element = $.pascal.element || {};
$.pascal.ajax_vars = {
ajax_url: pascal_ajax.ajax_url,
security: pascal_ajax.global_security, // security
isRTL: pascal_ajax.is_rtl
};
$(document).ready(function () {
$.pascal.init();
var colorPickerContainers = $('.element-wrapper.element-wpcolor .color-picker');
$.pascal.element.colorpicker(colorPickerContainers);
$.pascal.element.colorpicker_actions();
});
$.pascal.init = function () {
}
$.pascal.element.colorpicker = function (selectors) {
$.post($.pascal.ajax_vars.ajax_url, server_data)
.done(function (response) {
});
}
$.pascal.element.colorpicker_actions = function () {
}
})(jQuery);
Converting the old JS objects into a JS Class makes “Go to Definition” work:
(function ($) {
'use strict';
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
loaded = false,
ie11 = window.navigator.userAgent.indexOf('Trident/7.0') > 0;
class Pascal {
constructor() {
this.ajax_vars = {
ajax_url: pascal_ajax.ajax_url,
security: pascal_ajax.global_security, // security
isRTL: pascal_ajax.is_rtl
};
}
init() {
}
element = {
colorpicker(selectors) {
$.post(this.ajax_vars.ajax_url, server_data)
.done(function (response) {
});
},
/**
* -- Use {Arrow Function} to access parent class variables --
* */
colorpicker_actions: () => {
const _parent = this,
_clsElement = _parent.element;
}
}
} // Class Pascal
$(document).ready(() => {
const pascal = new Pascal();
pascal.init();
const colorPickerContainers = $('.element-wrapper.element-wpcolor .color-picker');
pascal.element.colorpicker(colorPickerContainers);
pascal.element.colorpicker_actions();
});
})(jQuery);