附加现有的onClick值

时间:2013-03-24 02:42:51

标签: javascript onclick

我正在使用javascript并需要获取现有onclick的值并附加到它。我不是要替换当前的onclick,我试图附加到它的前面或结尾。但是这种努力的所有不同迭代都失败了。

快速举例:

<pre>
<a href="blah" id="tabA" onclick="alert("this");"
<script>
   function test() {
      alert("that") ;
   }
document.getElementById('tabA').onclick = "test();" + document.getElementById('tabA').getAttribute('onclick') ;
</script>
</pre>

3 个答案:

答案 0 :(得分:0)

使用.onclick事件时,您应该使用函数,然后使用操作:

document.getElementById("tabA").onclick = function()
{
alert("hello world")//this will work
}

document.getElementById('tabA').onclick = "test();" + document.getElementById('tabA').getAttribute('onclick') ;//fail since events are not variables to store values.

所以,无论你想做什么,这样做都不会有效。

答案 1 :(得分:0)

我不知道我是否明白你的观点。 我的解决方案是

    <a href="blah" id="tabA" onclick="alert('this');">tabA</a>
    <script>
       function test() {
          alert("that") ;
       }
       var oldClick = document.getElementById('tabA').getAttribute('onclick') ;
       var newClick = function(){
            test();
            eval(oldClick);
       }
    document.getElementById('tabA').onclick = newClick;
    </script>

当我点击“tabA”时,它会发出'that'然后'this'的提示。 http://jsfiddle.net/x3Xds/

答案 2 :(得分:0)

我知道这已经很老了,但我需要做同样的事情。

我通过使用一个事件解决了这个问题;

obj.addEventListener('click', function(){ test(); }, false);