我正在使用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>
答案 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);