MozTW 討論區
https://forum.moztw.org/

[求助]使用語法更改event監聽
https://forum.moztw.org/viewtopic.php?f=13&t=17613
1 頁 (共 1 頁)

發表人:  legnaleurc [ 2007-02-12, 15:04 ]
文章主題 :  [求助]使用語法更改event監聽

我有個物件如下:
<input type="button" id="test" value="god" onClick=" aruiFunc() " />

然後aruiFunc()會執行下面的東西:
document.getElementById( 'test' ).getAttributeNode( 'value' ).value = 'dog';
document.getElementById( 'test' ).getAttributeNode( 'onClick' ).value = 'alert(\"teset\")';

在Firefox和Opera底下正常作用
god有被改成dog
而onClick的動作也被改掉
但是IE下就只有第一行會作用
第二行的動作不會被改變

發表人:  焦貓 [ 2007-02-12, 17:14 ]
文章主題 : 

這是爪哇script嗎?(要寫多載??)
是的話...
我的寫法是,多一層div

<div id = test>
<input type="button" value="god" onClick=" aruiFunc() ">
</div>

<script language="JavaScript">
function aruiFunc(name){
document.getElementById('test').innerHTML = '<input type=button value=dog onClick= aruiFunc("text")>';
//這行為測試用document.getElementById('test').innerHTML +=name;
}
</script>

發表人:  legnaleurc [ 2007-02-12, 17:55 ]
文章主題 : 

我是用SPAN去包....
不過為什麼IE明明抓得到value的屬性而且可以改
onClick就不能
應該都是一樣的東西吧

發表人:  焦貓 [ 2007-02-12, 18:15 ]
文章主題 : 

我是覺得,ie應該是把onclick當作動作來看吧
當html載入時,動作就不能被修改了...

發表人:  legnaleurc [ 2007-02-12, 18:37 ]
文章主題 : 

又是使用的DOM樹不一樣的問題嗎
這幾天快被IE搞死....
要弄出一個通用的網頁還挺麻煩的
不過我還沒測過Safari

發表人:  kourge [ 2007-02-12, 22:44 ]
文章主題 : 

legnaleurc 寫:
又是使用的DOM樹不一樣的問題嗎
這幾天快被IE搞死....
要弄出一個通用的網頁還挺麻煩的
不過我還沒測過Safari

老兄啊,挑個 JavaScript library 來用用吧~
要選哪個,jQuery 還是 Prototype?要靠純 JS 走 DOM 和玩 Ajax 就像在自己身上綁炸藥一樣XD

發表人:  legnaleurc [ 2007-02-13, 10:04 ]
文章主題 : 

kourge 寫:
老兄啊,挑個 JavaScript library 來用用吧~
要選哪個,jQuery 還是 Prototype?要靠純 JS 走 DOM 和玩 Ajax 就像在自己身上綁炸藥一樣XD


因為我是新手啊(泣)
到目前為止都是用Notepad++手寫上去
可以指教一下詳細的狀況嗎?

發表人:  kourge [ 2007-02-13, 14:27 ]
文章主題 : 

legnaleurc 寫:
kourge 寫:
老兄啊,挑個 JavaScript library 來用用吧~
要選哪個,jQuery 還是 Prototype?要靠純 JS 走 DOM 和玩 Ajax 就像在自己身上綁炸藥一樣XD


因為我是新手啊(泣)
到目前為止都是用Notepad++手寫上去
可以指教一下詳細的狀況嗎?

通常如果要做的事有:
1. 發 XHR
2. 走 DOM
3. 加 event
那就挑一個 js lib (如 jQuery 或 Prototype),include 進去:
<script type="text/javascript" src="prototype.js"></script>

然後寫東西就容易多了...

像你原本舉的例子:
引言回覆:
<input type="button" id="test" value="god" onClick=" aruiFunc() " />

然後aruiFunc()會執行下面的東西:
document.getElementById( 'test' ).getAttributeNode( 'value' ).value = 'dog';
document.getElementById( 'test' ).getAttributeNode( 'onClick' ).value = 'alert("teset")';

如果用 Prototype 就可以這樣寫:
<input type="button" id="test" value="god" />
function aruiFunc() {
$('test').value = 'dog'; //改值
$('test').stopObserving('click', aruiFunc); //原來的解除掉
$('test').observe('click', function(){alert('test');});
}
$('test').observe('click', aruiFunc);

是有什麼特別的需要,要把 event handler 給換掉嗎?

發表人:  legnaleurc [ 2007-02-13, 15:29 ]
文章主題 : 

kourge 寫:
通常如果要做的事有:
1. 發 XHR
2. 走 DOM
3. 加 event
那就挑一個 js lib (如 jQuery 或 Prototype),include 進去:
<script type="text/javascript" src="prototype.js"></script>

然後寫東西就容易多了...

像你原本舉的例子:

如果用 Prototype 就可以這樣寫:
<input type="button" id="test" value="god" />
function aruiFunc() {
$('test').value = 'dog'; //改值
$('test').stopObserving('click', aruiFunc); //原來的解除掉
$('test').observe('click', function(){alert('test');});
}
$('test').observe('click', aruiFunc);

是有什麼特別的需要,要把 event handler 給換掉嗎?


怎麼好像API一樣的東西.....
好吧,下次我會試試(我有預感又要翻一堆說明文件)

要換event只是我想省介面空間而已
每個動作都寫一個按鍵有點占空間
就是我之前問的地圖網站裡的東西

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/