1

私は 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>
4

3 に答える 3

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.

だから、何をしようとしても、それではうまくいきません。

于 2013-03-24T06:39:42.827 に答える
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」をクリックすると、「それ」、「これ」の順に警告されます。 http://jsfiddle.net/x3Xds/

于 2013-03-24T14:06:58.670 に答える
0

これはかなり古いことは知っていますが、同じことをする必要がありました。

イベントを使用してこれを回避しました。

obj.addEventListener('click', function(){ test(); }, false);
于 2014-11-05T17:49:33.700 に答える