Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从jQuery中的另一个函数调用嵌套函数?_Javascript_Jquery - Fatal编程技术网

Javascript 如何从jQuery中的另一个函数调用嵌套函数?

Javascript 如何从jQuery中的另一个函数调用嵌套函数?,javascript,jquery,Javascript,Jquery,我浏览了这个网站,寻找帮助解决这个问题的线索,但这些线索不够具体,无法帮助解决这个问题 我有这个登录代码,它有一个嵌套函数,我需要从登录脚本范围之外的另一个函数调用该函数 jstore.plugins.login = function(url, options) { var login = jstore.plugins.login; var opts = $.extend(true, {}, jstore.plugins.login.defaults, options);

我浏览了这个网站,寻找帮助解决这个问题的线索,但这些线索不够具体,无法帮助解决这个问题

我有这个登录代码,它有一个嵌套函数,我需要从登录脚本范围之外的另一个函数调用该函数

jstore.plugins.login = function(url, options) { 

    var login = jstore.plugins.login;
    var opts = $.extend(true, {}, jstore.plugins.login.defaults, options);
    var server = jstore.url2server({ url: url });

    return this.each(function() {
        var $this = $(this);
        var id = jstore.uid();
        $this.append('<div class=\'jstore_widget jstore_login\' id=\'' + id + '\'></div>');
        var updated = function(server) {
            var element = document.getElementById(id);
            if(element) {
                var e = $(element);
        var loginDisplayed = $('.jstore_login_name', element).length == 1;
        if (server.loggedIn() === false && loginDisplayed) {
            return true;
        }
        e.html(login.getHTML(server, opts));
        if(server.loggedIn()) {
           e.click(function() {
              var server = jstore.getServer(url);
              if(server && server.loggedIn()) {
                 server.logout();
              }
        });
基于本网站的研究;我试图通过构造以下行直接调用它,但它不起作用:

jstore.plugins.login.updated().e.click();
我对jQuery几乎没有实际知识。记住我是个新手;从语法上讲,从父函数作用域之外的位置调用嵌套javascript函数的正确方法是什么

问候

:更新:

我能够做到这一点,非常感谢nuway的出色建议和其他人的建设性批评

以下是我的结论:

jstore.plugins.login = function(url, options) { 

var login = jstore.plugins.login;
var opts = $.extend(true, {}, jstore.plugins.login.defaults, options);
var server = jstore.url2server({ url: url });

return this.each(function() {
    var $this = $(this);
    var id = jstore.uid();
    $this.append('<div class=\'jstore_widget jstore_login\' id=\'' + id + '\'></div>');

    window.onClick = function() {
        var server = jstore.getServer(url);
        if(server && server.loggedIn()) {
            server.logout();
            }
        };

    var updated = function(server) {
        var element = document.getElementById(id);
        if(element) {
            var e = $(element);
            var loginDisplayed = $('.jstore_login_name', element).length == 1;
        if (server.loggedIn() === false && loginDisplayed) {
            return true;
            }
            e.html(login.getHTML(server, opts));
        if(server.loggedIn()) {
           e.click(onClick);
        }
jstore.plugins.login=函数(url,选项){
var login=jstore.plugins.login;
var opts=$.extend(true,{},jstore.plugins.login.defaults,options);
var server=jstore.url2server({url:url});
返回此值。每个(函数(){
var$this=$(this);
var id=jstore.uid();
$this.append(“”);
window.onClick=function(){
var server=jstore.getServer(url);
if(server&&server.loggedIn()){
server.logout();
}
};
var updated=功能(服务器){
var元素=document.getElementById(id);
if(元素){
变量e=$(元素);
var loginDisplayed=$('.jstore\u login\u name',element).length==1;
if(server.loggedIn()==false&&loginDisplayed){
返回true;
}
e、 html(login.getHTML(server,opts));
if(server.loggedIn()){
e、 单击(onClick);
}

我只需要使用
window.onClick=…
全局化onClick函数,以便从另一个函数调用它。

为什么不将此块放入它自己的函数中,例如

var onClick = function() {
    var server = jstore.getServer(url);
    if(server && server.loggedIn()) {
          server.logout();
    }
}
然后你可以这样传递它:

e.单击(onClick)


您可以通过调用
onClick()从其他地方调用它

我很少看到右大括号。我只粘贴了部分代码。右大括号只是没有显示。是否需要发布整个块?@user3674192你能问一个适当的问题,而不是“告诉我它是如何完成的”吗?当然。从语法上讲,从sc之外的位置调用嵌套javascript函数的正确方式是什么父函数的操作?你应该重新格式化你的代码。如果你想得到帮助,最好让读者更容易理解。谢谢,这似乎是我应该做的,我会尝试一下。是否应该在
var updated
中实例化
e.click(onClick)
var onClick = function() {
    var server = jstore.getServer(url);
    if(server && server.loggedIn()) {
          server.logout();
    }
}