javascript - 如何将传递到 function() 的动态参数中继到 function() 中调用的 function()

标签 javascript jquery

我正在尝试将网页中的动态参数中继到函数中,然后函数将它们传递给函数内部的调用。比如下面这个简化的代码片段,现在这样,直接传入参数是没有问题的。但是,如何在不为每个可能的 colorbox 参数设置 showColorbox() 参数的情况下传入 colorbox 接受的参数?

function showColorbox(title, url, width, height, modal, params) {

    $.colorbox({title:title, href:url, width:width, height:height, opacity:0.7});

}

例如,colorbox 接受传入一个事件函数,如果我直接调用 colorbox,如下所示:

    $.colorbox({title:title, href:url, width:width, height:height, opacity:0.7, 
                onComplete: function() {
                                 $.colorbox.resize();
                             } 
              });

所以,如果不添加一些代码或制作另一个参数并在 showColorbox() 中以某种方式解析它,有没有办法让我传递 onComplete 参数/代码 [via showColorbox(....{onComplete:yada yada} ) 或其他东西] 并将它们传递给 $.colorbox() 函数?

更新: 最终成功使用以下内容,向 showColorbox() 函数添加了一个额外的 objParams 参数。

//m_title, m_url, m_width, m_height are from fixed parameters for showColorbox()        
var objBase = {title:m_title,href:m_url,width:m_width,height:m_height} ;
var objFinal = {};

//add base parameters passed in directly, fixed params
for(var item in objBase) {
    objFinal[item] = objBase[item];
}       
//add the parameters from objParams passed in (variable params/values)
for(var item in objParams) {
    objFinal[item] = objParams[item]
}   

//call function with combined parameters in object      
$.colorbox(objFinal)

调用者都不需要更新,但现在使用 $.colorbox 理解的参数传递一个新对象工作正常!再次感谢!

最佳答案

听起来您正在寻找的解决方案是希望有一种简单的方法来将变量参数的各个参数作为对象文字中的命名属性值传递。如果是这样,则没有办法实现这一目标。主要是因为在这种情况下,参数没有名称,因此它们没有任何内容可以映射到。

完全解决此问题的最佳方法是在每个阶段都需要一个对象并完全省略额外的参数。

function showColorbox(obj) {
  ...
  $.colorbox(obj);
}

showColorbox({title:title, href:url, width:width, height:height, opacity:0.7});

关于javascript - 如何将传递到 function() 的动态参数中继到 function() 中调用的 function(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560315/

相关文章:

javascript - 将 JS 处理的值附加到要以表单发送的文本区域

javascript - 获取视频时长 jQuery

javascript ->= 和 <= 以及 JS 中的 eval 函数是否存在已知问题?

javascript - 查找所有 <td> 元素的数字 ID 名称

javascript - 如何声明给定类在 Facebook Flow 中实现接口(interface)?

jquery - 获取div内的图像属性?

JavaScript 将人类可读的日期转换为 unix 时间戳,然后再转换回来

javascript - 包装重新定义 "this"的 JavaScript 回调

javascript - For 循环遍历自定义过滤器结果

javascript - Divi Wordpress 主题 - 从外部页面打开带有 anchor 链接的选项卡