javascript - 这不是调用我的 obj 函数的正确方法吗?

标签 javascript jquery

我有一个返回对象的函数。在对象中,我有两个函数来显示弹出窗口并关闭它。它在父函数中工作,但它不是从外部调用的。这不是正确的调用方式吗?否则我如何从外部调用 obj 函数?

我的功能:

var popupHandler = function(handler,msg,popUp){

    msg =  msg == "help" ? "help" : "results"
    $(handler).click(function(){
        popObj.showPop(); //works
    })
    $('.cls-how2play').click(function(){
        if(msg == 'help') popObj.closePop(); //works
    });

    var popObj = {
        showPop  : function(){
                    if(!(popUp).is(':visible')) $(popUp).fadeIn().children().find('.'+msg).show().siblings().hide();
                },
        closePop : function(){
                    $(popUp).fadeOut()
                }
    }
    return popObj;
}

从这样调用 ouside :

 $('.ui-footer').click( function(){ 
  var closeIt = popupHandler(); 
  closeIt.popObj.closePop() }) //not works.. why?
}

任何人都可以帮助我从返回函数外部调用 obj 函数的正确方法吗?

谢谢。

最佳答案

而不是

closeIt.popObj.closePop()

你想要

closeIt.closePop()

您的popupHandler 函数返回 popObj 对象,该对象具有showPopclosePop 功能。所以 closeIt 是对同一对象的引用。

关于javascript - 这不是调用我的 obj 函数的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598845/

相关文章:

javascript - AJAX获取请求JSONP解析器错误: readyState":4 ,"status":200 ,"statusText" :"load"}]

javascript - 阻止 WebView 运行 Javascript,直到它可见

javascript - 在大网格上平滑滚动图像 block ?

javascript - 使用 Javascript 从 Web View 切换到应用程序 View

javascript - 在后台显示网站?

javascript - Windows 8 应用程序 - 单点登录应用程序 - 未加入域

javascript - onclick返回的函数有html元素吗?

javascript - 自动换行不起作用

asp.net - 如何让用户仅选择复选框列表中的一个复选框

javascript - 通过正则表达式获取正确的字符串