1

我得到了一个切换 onclick 功能的图像。调用的函数是对象的方法。我的问题:我不知道对象的名称,所以我怎么能

初始 HTML 代码:

<img id="someID" [...] onClick="someObject.aFunction();" />

想要的结果:

<img id="someID" [...] onClick="someObject.otherFunction();" />

我当前的 Javascript(解决方法):

someClass.prototype.aFunction() = function() {
    button = document.getElementByID('someID');
    button.setAttribute("onclick", button.getAttribute('onclick').split('.')[0]+'.otherFunction()');
}

不是很好,但它暂时有效。有更好的解决方案吗?

4

2 回答 2

1

这是一种可能的解决方案:

var el = document.getElementById('someID');
el.onclick = function(){  
     // or some other prop
     if(el.hasBeenClicked)
         function1();
     else
         function2();

     // toggle the selected state
     el.hasBeenClicked= !el.hasBeenClicked;
}  

当然,有很多(更好的)解决方案。
如果你使用 jquery,那么代码应该被翻译成类似这样的东西:

$('#someID').toggle(function1, function2);
于 2012-12-23T21:39:55.370 回答
0

你可以试试这个

someObject.doFunction = function() {
    if (this.currentFunction == this.aFunction)
        this.currentFunction = this.otherFunction;
    else
        this.currentFunction = this.aFunction;
    this.currentFunction();
}

function h() { someObject.doFunction()}

var el = document.getElementById('someID');
if (el.attachEvent) {
    el.attachEvent("onclick", h);
} else {
    el.addEventListener("click", h, false); 
}
于 2012-12-23T22:09:06.990 回答