现在的位置: 首页 > 综合 > 正文

调试了半天,全都是复制代码惹得祸!

2012年09月03日 ⁄ 综合 ⁄ 共 2722字 ⁄ 字号 评论关闭

    上次由于一个'\t'让我郁闷了半天,本以为自己已经在debug的时候很小心了,没有想到今天又载了一会。错误非常之低级,而debug费力又还非常之大,真是让人哭笑不得。所以干脆在blog的随笔里专门开辟一个叫"Debug中的滑铁卢"的分类,专门记录Debug时一些stupid的小事。

    其实Coding是挺枯燥的,这个我在说Whidbey的Snippets功能时就说过,而且特别是重复的Coding,更是让人烦躁。但是不管枯燥也好烦躁也罢,还是要写不。这时我们常常也会学学网站编辑,动用动用Ctrl+C & Ctrl+V大法。这不手艺欠佳,今天我就载在这个Ctrl+C、V上了,看来注定当不成网站编辑了(就这追求啊,浪费了我这么多时间看你这么些天瞎摆活了!)。

    今天这个问题其实超级的简单,真是too simple, too young ...,我在GetShowTab()方法前定义了两个方法,我写成这样的:

 DimTreeTab.prototype.ShowMemberTree = function()
 {
 };

 DimTreeTab.prototype.ShowSearchMember 
= function()
 {
 };

 DimTreeTab.prototype.GetShownTab 
= function()
 {
     
if ( this.m_Panels[0].m_Element.style.display == 'inline' )
     {
         
// . . .
     }
 };

    这时发现这两个函数里面需要用 this.m_Panels[0].m_Element.style.display。好啊,Ctrl+C & Ctrl+V,搞定!

 DimTreeTab.prototype.ShowMemberTree = function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[0].m_Element.style.display == 'inline' 
 };

 DimTreeTab.prototype.ShowSearchMember 
= function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[0].m_Element.style.display == 'inline' 
 };

    改拨改拨,ok了~~

 DimTreeTab.prototype.ShowMemberTree = function()
 {
     this.m_Panels[0].m_Element.style.display == 'inline' 
     this.m_Panels[1].m_Element.style.display == 'none
 };

 DimTreeTab.prototype.ShowSearchMember 
= function()
 {
     this.m_Panels[0].m_Element.style.display == 'none
     this.m_Panels[1].m_Element.style.display == 'inline' 
 };

    运行起来完全没有效果,由于对DHTML中的element引用关系比较复杂,老是觉得可能是没有引用到正确的element,就在this.m_Panels[n].m_Element里查啊查啊,查到花儿都谢了,还是没有查到问题。最后都调试成这样了:

DimTreeTab.prototype.ShowMemberTree = function()
{
    alert(
this.m_Panels[0].m_Element.outerHTML);
    
this.m_Panels[0].m_Element.style.display == 'inline';
    alert(
this.m_Panels[0].m_Element.outerHTML);
    alert(
this.m_Panels[1].m_Element.outerHTML);    
    
this.m_Panels[1].m_Element.style.display == 'none';
    alert(
this.m_Panels[1].m_Element.outerHTML);    
};

DimTreeTab.prototype.ShowSearchMember 
= function()
{
    alert(
this.m_Panels[0].m_Element.outerHTML);
    
this.m_Panels[0].m_Element.style.display == 'none';
    alert(
this.m_Panels[0].m_Element.outerHTML);
    alert(
this.m_Panels[1].m_Element.outerHTML);    
    
this.m_Panels[1].m_Element.style.display == 'inline';
    alert(
this.m_Panels[1].m_Element.outerHTML);    
};

    才猛然发现,怎么赋值是"=="啊!!!。正确的应该是:

DimTreeTab.prototype.ShowMemberTree = function()
{
    
this.m_Panels[0].m_Element.style.display = 'inline';
    
this.m_Panels[1].m_Element.style.display = 'none';
};

DimTreeTab.prototype.ShowSearchMember 
= function()
{
    
this.m_Panels[0].m_Element.style.display = 'none';
    
this.m_Panels[1].m_Element.style.display = 'inline';
};

    可能算不上什么教训,但是还是可以注意几点。Coding的时候,因该:

    打些字;
    查问题先查简单的;
    实在不行了,散散步回来做;
    让team里的哥们给看一下...

抱歉!评论已关闭.