gpt4 book ai didi

javascript - 查询/JS : Call a function of Jquery-function outside Jquery-function

转载 作者:行者123 更新时间:2023-11-30 18:14:37 25 4
gpt4 key购买 nike

(function($){
$.fn.the_func = function() {

function my_func(){
alert('it works');
}

my_func();

// other code

};
})(jQuery);

$(window).load(function(){
my_func(); // This way?
$.the_func().my_func(); // Or this way? No?
$.the_func.my_func(); // No?
// ?
});

$(document).ready(function(){
$('div').the_func();
});

如何在包装它的函数之外调用这个函数?
我想在这个代码示例中调用 my_func()
(窗口加载函数只是一个例子。)
我想从“任何地方”调用 my_func(),而不是在 the_func() 中执行其他函数或代码。但是我想使用 the_func() 的变量。
使用 my_func() 我想更新存储在 the_func() 参数中的值。

最佳答案

这是我通常如何编写插件的示例,可以应用于您的情况:

http://jsfiddle.net/pMPum/1/

(function ($) {
function my_func(element) {
console.log("it works: " + element.innerHTML);
}

var methods = {
init: function (options) {
console.log("from init");
console.log("options for init: " + JSON.stringify(options));
my_func(this);
},

my_func: function (options) {
console.log("from my_func");
console.log("options for my_func: " + JSON.stringify(options));
my_func(this);
}
};

$.fn.the_func = function (method) {
var args = arguments;
var argss = Array.prototype.slice.call(args, 1);

return this.each(function () {
if (methods[method]) {
methods[method].apply(this, argss);
}
else if (typeof method === "object" || !method) {
methods.init.apply(this, args);
}
else {
$.error("Method " + method + " does not exist on jQuery.the_func");
}
});
};
})(jQuery);

$(document).ready(function () {
$("div").the_func({ // Same as passing "init" and { } as params
test: "testing"
});
});

请注意我是如何在范围内创建一个通用的 my_func 函数的,它可以被调用。 methods 中的my_func 方法是通过插件语法.the_func()my_func 暴露给世界的> 函数是私有(private)的,不能直接访问。

调用不同方法的语法与大多数/大量 jQuery 插件相同。

关于javascript - 查询/JS : Call a function of Jquery-function outside Jquery-function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com