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;
},
只是单纯的js封装的话,不能用this.调用,应该用外部定义的变量调用:
(function () {
var test = {
constructor: function () {
console.log('11111')
},
init: function () {
test.constructor() //像这样调用
}
};
module.exports = test;
})();
贴出完整的对象,只把两个方法丢在这,让人怎么看?
看代码,你这个调用本身就是在 setImgObj 函数的定义方法体中呢。
F12 看看具体报的错误信息是什么。
报错信息是什么,代码看不出什么问题,也有可能是参数错误也说不定