cómo configurar para usar argumentos de función dinámicamente, he probado muchos métodos y no funciona correctamente. Espero que alguien me pueda ayudar, muchas gracias.
Función:
function initDropdown(type, placement, trigger, strategy, functions) { tippy('[data-cg-toggle="' + type + '"]', { zIndex: 99999, interactive: true, placement: placement, allowHTML: true, trigger: trigger, popperOptions: { strategy: strategy, }, functions }); }Funciones de inicio
initDropdown('dropdown', 'bottom-end', 'click', 'fixed', { content(reference) { return content; }, onShown(instance) { $($(instance)[0].reference).addClass('dropdown-toggled'); }, onHidden(instance) { $($(instance)[0].reference).removeClass('dropdown-toggled'); } }); initDropdown('dropdown', 'bottom-end', 'click', 'fixed', { onShown(instance) { var content = $($(instance)[0].reference).parent().children('.dropdown-menu')[0].innerHTML; $($(instance)[0].reference).addClass('dropdown-toggled'); instance.setContent(content); }, onHidden(instance) { $($(instance)[0].reference).removeClass('dropdown-toggled'); }, });Puede usar el objeto Javascript en este caso
Al declarar su función:
function myFunc (options = {}) { if(typeof options === 'object') { let a = options.type; console.log(a) return true } throw new Error("Oops.. MyFunc Accepts only Objects!") }Y mientras lo llama:
myFunc({ type: 'number', etc: '1', // you can add as many values as you want and access it in the function. })Puede obtener más información al respecto aquí
Puedes usar
Object.assign({}, { ...options... }, functions)o, como jquery etiquetado
$.extend({}, { ...options... }, functions)Ejemplo:
function initDropdown(type, placement, trigger, strategy, functions) { tippy('[data-cg-toggle="' + type + '"]', Object.assign({}, { zIndex: 99999, interactive: true, placement: placement, allowHTML: true, trigger: trigger, popperOptions: { strategy: strategy, } }, functions }); }