上次由于一个'\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里的哥们给看一下...

相关文章:

  • 2022-12-23
  • 2021-09-30
  • 2021-11-14
  • 2021-12-27
  • 2021-09-22
  • 2022-02-25
  • 2022-02-23
  • 2022-12-23
猜你喜欢
  • 2021-04-21
  • 2021-12-29
  • 2021-10-10
  • 2021-11-02
  • 2021-05-22
  • 2021-06-02
相关资源
相似解决方案