【发布时间】:2014-06-06 10:57:45
【问题描述】:
我正在使用第三方 jQuery 插件,其中包含可以覆盖的选项。我有三个文件:插件源文件、设置发送给插件的选项的 Javascript 文件以及调用脚本的 HTML 文件。
其中一个选项来自 AJAX 调用,为了确保选项正确加载,我在调用返回后使用 $.getScript 加载脚本。其余的选项都是静态的,所以它们可以留在我的脚本文件中。
这是我在脚本加载后从我的 HTML 文件中调用插件的方式:
$.("#plugin_selector").pluginName({newOption: ajaxValue});
以下是我如何通过发送一组选项(假设我在 AJAX 调用之前加载脚本)从我的 Javascript 文件中成功调用插件:
var options = [{
option1: value,
option2: value2,
option3: value3
});
$.("#plugin_selector").pluginName(options);
问题是,当我在 AJAX 调用后加载脚本并发送新选项时,我通过变量设置的所有其他选项都被覆盖。理想情况下,我希望将这两个数组结合起来。
在调用插件时,如何结合从我的 HTML 文件发送的动态选项和脚本文件中的选项数组?我的 Javascript 文件中的 options 数组调用了该文件中的一些其他函数,因此我认为将其保留在该 Javascript 文件中会更好。
我尝试遵循这种模式:http://jquery-howto.blogspot.com/2009/01/how-to-set-default-settings-in-your.html,但它不起作用,我认为是因为第三方插件在调用插件以覆盖默认值时已经执行了 $.extend 过程。
【问题讨论】:
-
我似乎无法完全理解这个问题。您是实例化整个对象,还是只是为预实例化对象设置选项?您能否提供更多代码来制作 $.("#plugin_selector").pluginName({newOption: ajaxValue});调用和ajax函数?
标签: javascript jquery