Posted on 2006-08-02 21:15
兵臨城下 閱讀(416)
評論(4) 編輯 收藏 所屬分類:
JavaScript
???????? 光說很難說清楚,我給大家演示一下:
???????? 網頁中存在這樣的一個數組,通過script打出的 <script>var pdt =[1,2];</script>,邏輯是想通過這個數組的長度來控制一張圖片的鏈接:<img id = "ref" src="/reference.tif" width="389"/>。
???????? 控制方法如下:在<body onload = "reference()">中調用這個js方法。
???????? function reference() {
?????????????? var img = document.getElementById("ref");
?????????????? if(typeof(pdt) = = undefined ||? pdt.length = =0) {
????????????????????? img.style.filter = "Gray";
????????????? }else{?? img.onclick="REF_ON()"; }
???????? }
???????? 運行后頁面沒有提示任何js錯誤,在pdt不為空時察看代碼,圖片鏈接中已變為:<img id = "ref"? onclick = "REF_ON()" src="/reference.tif" width="389" />,說明js方法已添加成功,然而點擊圖片時卻沒有任何反應,不知為何?
???????? 后和同事討論,將代碼改變如下就OK了:
???????? <img id = "ref"? onclick="REF_ON()"? src="/reference.tif" width="389"/>將方法調用先直接寫入頁面中,JS方法改變如下:
???????? function reference() {
?????????????? var img = document.getElementById("ref");
?????????????? if(typeof(pdt) = = null? ||? pdt.length = =0) {
????????????????????? img.style.filter = "Gray";
????????????????????? img.onclick = null;????????
?????????????? }
???????? }
???????? 兩種方法在邏輯上看沒什么區別,但最終實現確不一樣,想請教大家,第一種方法為何不行?奇怪的是JS方法已把onclick成功加入到頁面中,為什么點擊后沒有反應??