2012-10-15 34 views
1

我最近有一個problem,我已經解決了。JavaScript onclick條件表單元格

但是,我現在有一個不同的問題。我希望代碼只能切換第二列和第三列單元格的可見性。

我不知道如何解決這個問題,我的JavaScript知識很少。

此外,如果第二行和第三行的所有單元格自動切換爲不可見狀態,那將會很好,但不是必需的。

編輯:

我抄僅在soltution我以前爲了便於問題。

function tableclick(e) 
{ 
    e = e || window.event; 
    var target = e.target || e.srcElement; 
    while(target != this && (!target.tagName || target.tagName != "TD")) target = target.parentNode; 
    if(target != this) 
    { 
     toggleVis(target) 
    } 
} 

function toggleVis(obj) 
{ 
    if (obj.style.fontSize != "0px") 
    { 
     obj.style.fontSize = "0px" 
    } 
    else 
    { 
     obj.style.fontSize = "16px" 
    } 
} 
+0

jQuery的? –

+0

否 - 代碼嵌入到文件中,這些是在我們的內部網絡上共享的報告文檔。並可能在外面。不能依靠外部庫 –

+0

沒有什麼能阻止你託管你自己的jQuery庫副本 – freefaller

回答

1
function tableclick(e) 
{ 
    e = e || window.event; 
    var target = e.target || e.srcElement; 
    while(target != this && (!target.tagName || target.tagName != "TD")) target = target.parentNode; 
    if(target != this && (target.cellIndex == 1 || target.cellIndex == 2)) 
    { 
     toggleVis(target) 
    } 
} 
+0

不錯,更優雅! –

0

我解決它來做一些事我從來沒想過會的實際工作,但你有它...允許

function tableclick(e) 
{ 
    var ColNum=1; 
    if(navigator.userAgent.indexOf("MSIE")!=-1) { 
     if(event.srcElement.tagName=="TD") { 
      ColNum+=event.srcElement.cellIndex; 
      } 
     } 
    else {  
     if (e.target == "[object HTMLTableCellElement]") { 
      ColNum+=e.target.cellIndex; 
      } 
     } 
    if (ColNum == 2 || ColNum == 3) 
    {  
    e = e || window.event; 
    var target = e.target || e.srcElement; 
    while(target != this && (!target.tagName || target.tagName != "TD")) target = target.parentNode; 
    if(target != this) 
    { 
     toggleVis(target) 
    } 
    } 
} 
+0

爲什麼你使用瀏覽器嗅探(總是一個壞主意),如果你已經有工作代碼,獨立獲取「目標」瀏覽器?你的整個if塊基本上和'e = e ||一樣window.event; var target = e.target || e.srcElement;'。看到我的回答... – RoToRa

+0

@RoToRa謝謝,我只是不知道javascript。 –