Behaviorの追加と解放/addBehavior()とremoveBehavior()

addBehavior()メソッドでBehaviorを追加すると整数値(iID)が返ってくる。 追加したBehaviorを解放する際には、この整数値をremoveBehavior(iID)として指定 しなければならない。だから、Behaviorの追加/解放を行うときは、 iIDを保持しておく仕組みが必要になる。このサンプルではreturnID配列が その役目を果たしている。

このファイルのソース(抜粋)

<SCRIPT LANGUAGE="JavaScript">

var flag = true
var listObj = new Array()	//LIのオブジェクト変数
var returnID = new Array()	//個々のLIオブジェクトにaddBehavior()を実行したとき返ってくる整数値

function switchBehavior()	{
	listObj = document.all.tags("LI")
	var listLength = listObj.length
	if(flag == true)	{
		for(i = 0 ; i < listLength ; i++)	{
			returnID[i] = listObj[i].addBehavior("dhtml_ie_neo0023s.htc")
		}
		button1.innerText = "Behavior OFF"
		flag = false
	} else	{
		for(i = 0 ; i < listLength ; i++)	{
			listObj[i].removeBehavior(returnID[i])
		}
		button1.innerText = "Behavior ON"
		flag = true
	}
}

</SCRIPT>

dhtml_ie_neo0023s.htc

<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="attachUnder()">
<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="Restore()">
<SCRIPT LANGUAGE="JavaScript">
function attachUnder()	{
	element.style.textDecoration = "underline"
}

function Restore()	{
	element.style.textDecoration = "none"
}
</SCRIPT>
</PUBLIC:COMPONENT>