我在這裏要做的是將一個DOM對象與一個JS對象的實例關聯起來,這將在稍後提供一些意義的方法;)此時我只想處理我的JS對象點擊事件,同時保持引用不變。JS onclick觸發錯誤的對象
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
<script type="text/javascript">
// my object, which will hold a reference to a single DOM object
obj = function(domobj) {
this.o = domobj;
my = this;
var ref = my.click;
this.o.onclick = ref;
}
// my objects click function
obj.prototype.click = function() {
alert(my.o.innerHTML);
}
// create objects with references
$(document).ready(function() {
o1 = new obj(document.getElementById('b1'));
o2 = new obj(document.getElementById('b2'));
});
</script>
</head>
<body>
<button id="b1">button 1</button>
<button id="b2">button 2</button>
</body>
</html>
預期的結果:對按鈕1,當點擊,文本 「按鈕1」 應警惕。
當前結果:當點擊按鈕1時,文本「按鈕2」被警告。
到目前爲止,我發現obj的錯誤實例是由click事件觸發的,儘管o1和o2保持對其對應DOM對象的正確引用。
任何想法如何解決這個問題?
感謝您的幫助!
最好的問候,克萊門斯
嗨,大家好 - 感謝您的幫助。顯然,我不明白如何正確使用閉包,儘管偶然會造成全局變量: - /。 自定義對象是需要的,因爲它們表示內聯編輯器的各個實例,並具有各種設置(不同的格式化按鈕等)。 無論如何 - 現在我明白了 - 非常感謝你! – blacktarmac 2010-03-28 10:17:03