Эмпирическое правило:
, Если бы функция Вы тестируете, нуждается в сложном объекте в качестве параметра, и это была бы боль для простого инстанцирования этого объекта (если, например, это пытается установить соединение TCP), используйте насмешку.
Скрипт
<html>
<head>
<script type="text/javascript">
function open_fun() {
document.getElementById('link').innerHTML = "<a href='javascript:clo_fun()'>CLOSE</a>";
}
function clo_fun() {
document.getElementById('link').innerHTML = "<a href='javascript:open_fun()'>OPEN</a>";
}
</script>
</head>
<body>
<div id='link'><a href='javascript:open_fun()'>OPEN</a></div>
</body>
</html>
<a href="" onClick="this.innerHTML = 'close'">Open</a>
Вы также можете вызвать некоторый тип функции переключения для замены текста при нескольких щелчках мыши.
function toggle(lnk_obj){
lnk_obj.innerHTML = (lnk_obj.innerHTML == 'close') ? 'open' : 'close' ;
}
<a href="" onClick="javascript:toggle(this);">Open</a>
addEventListener не поддерживается в IE. Если вам не нужны другие события onclick по ссылке, используйте это:
elm.onclick = function (e) {
this.innerHTML = "close";
};
Если вяз ссылка:
elm.addEventListener("click", function(){
this.innerHTML = "close";
}, true);