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

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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试