javatechinfo 2019-08-23 09:13 采纳率: 100%
浏览 1238
已采纳

JS中封装对象里的事件函数调用内部函数不执行 请高手指点

imgDbClick: function(){
clearTimeout(clickTimeId);
var tb = this.getElementsByClassName('thumbnail')[0];
var imginfo=imgManger.getImgInfo(tb,4)//这是成功代码 特别感谢qq37744644 原来用的是this.getImgInfo 报错 但是在对象内别的方法调用正常 除了单双击事件里(就封装了这2个事件函数)
imgedit(imginfo);
},

init: function(){
var self = this;
var imgObjs = document.getElementsByClassName(cn);
for (var i = 0; i < imgObjs.length; i++) {
imgObjs[i].ondblclick = self.imgDbClick;
imgObjs[i].onclick = self.imgClick;
imgObjs[i].onmouseenter = self.imgHover;
imgObjs[i].onmouseleave = self.imgOut;
};
},
setImgObj: function(imginfo){

        var tb=this.getImgObj(imginfo[0]);
        if(!tb){alert('Object not find!');return false;}
        var imgobj=tb.childNodes[1];
        var caption = tb.getElementsByClassName('caption')[0];  


         imgobj.src=imginfo[2];
         caption.childNodes[1].innerText=imginfo[3];
         caption.childNodes[3].innerText=imginfo[1];
         caption.childNodes[5].innerText=imginfo[4];

         return true;

    },
  • 写回答

4条回答 默认 最新

  • qq_351734088 2019-08-23 09:47
    关注

    只是单纯的js封装的话,不能用this.调用,应该用外部定义的变量调用:
    (function () {
    var test = {
    constructor: function () {
    console.log('11111')
    },
    init: function () {
    test.constructor() //像这样调用
    }

    };
    module.exports = test;
    

    })();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?