Jquery 初始化自己的插件
我已经为我的客户编写了一些jquery插件。我想写一个函数,将初始化已加载的每个插件 例如:Jquery 初始化自己的插件,jquery,jquery-plugins,Jquery,Jquery Plugins,我已经为我的客户编写了一些jquery插件。我想写一个函数,将初始化已加载的每个插件 例如: <script src="/Scripts/jquery.plugin1.min.js")" type="text/javascript"></script> <script src="/Scripts/jquery.plugin2.min.js")" type="text/javascript"></script> <script src="/Sc
<script src="/Scripts/jquery.plugin1.min.js")" type="text/javascript"></script>
<script src="/Scripts/jquery.plugin2.min.js")" type="text/javascript"></script>
<script src="/Scripts/jquery.initializer.min.js")" type="text/javascript"></script>
我知道我可以使用jQuery().pluginName
检查插件是否存在。但我想有一个更精简的方式。所有加载的插件是否都可以在数组中注册一个初始化函数,或者类似于我在document.ready中可以迭代并调用的函数
比如:
我想这一切归结为三个问题:
div
s。HTML需要由所有插件处理以添加插件功能,否则所有更新的部分将无法按上述方式工作
为什么我想这样做很重要?:)这不是一件非常复杂的事情。您可以创建如下数组:
$.myPlugins = [
{plugin: "plugin1", selector: "a.ajax"},
{plugin: "plugin2", selector: "div.test2"}
];
function initPlugins() {
for (var i = 0, item; item = $.myPlugins[i]; i++) {
$(item.selector)[item.plugin]();
}
}
还有一个运行所有插件的函数,如下所示:
$.myPlugins = [
{plugin: "plugin1", selector: "a.ajax"},
{plugin: "plugin2", selector: "div.test2"}
];
function initPlugins() {
for (var i = 0, item; item = $.myPlugins[i]; i++) {
$(item.selector)[item.plugin]();
}
}
现在在DOM ready上运行该函数,并在AJAX上完成:
$(document).ready(initPlugins).ajaxComplete(initPlugins);
但是,使用此方法,某些元素可能会被多次初始化。在initPlugins()
您可以创建如下数组:
$.myPlugins = [
{plugin: "plugin1", selector: "a.ajax"},
{plugin: "plugin2", selector: "div.test2"}
];
function initPlugins() {
for (var i = 0, item; item = $.myPlugins[i]; i++) {
$(item.selector)[item.plugin]();
}
}
还有一个运行所有插件的函数,如下所示:
$.myPlugins = [
{plugin: "plugin1", selector: "a.ajax"},
{plugin: "plugin2", selector: "div.test2"}
];
function initPlugins() {
for (var i = 0, item; item = $.myPlugins[i]; i++) {
$(item.selector)[item.plugin]();
}
}
现在在DOM ready上运行该函数,并在AJAX上完成:
$(document).ready(initPlugins).ajaxComplete(initPlugins);
但是,使用此方法,某些元素可能会被多次初始化。在initPlugins()
也许最好描述一下你真正想要实现的目标。你为什么要这样做?用答案更新问题也许可以很好地描述你真正想要实现的目标。为什么需要这样做?更新了问题的答案,该答案将强制用户在添加脚本时始终使用默认行为。通过将初始化过程放在单独的脚本中,使它们能够通过不添加init脚本来禁用它。另外,它不适用于通过ajax加载的HTML,因为document.ready不会触发。@jgauffin,抱歉,我误解了你的问题。这将迫使用户在添加脚本时始终使用默认行为。通过将初始化过程放在单独的脚本中,使它们能够通过不添加init脚本来禁用它。另外,它对通过ajax加载的HTML也不起作用,因为document.ready不要启动。@jgauffin,抱歉,我误解了您的问题。