2016-11-18 15 views
0

こんにちは、私のスワップ機能が正しく機能していないと思っています。何も見当たりません。問題が見つからないようです。前もって感謝します!Javascript Swap Three Paragraphs

<html> 
<head> 
    <title>Three Pharagraphs</title> 
<script> 
    function swap(a,b) { 
     var c = a.innerHTML; 
     a.innerHTML = b.innerHTML; 
     b.innerHTML = c; 
    } 
    window.onload = function() { 
     var link1 = document.getElementById('link1.1'); 
     var link2 = document.getElementById('link2.2'); 
     var link3 = document.getElementById('link3.3'); 
     var p1 = document.getElementById('line1'); 
     var p2 = document.getElementById('line2'); 
     var p3 = document.getElementById('line3'); 
     link1.onclick = swap(p1,p3); 
     link2.onclick = swap(p2,p3); 
     link3.onclick = swap(p1,p3); 
    } 
</script> 
</head> 
<body> 
    <p id="line1">What is Lorem Ipsum?</p> 
    <p id="line2">Why do we use it?</p> 
    <p id="line3">The standard Lorem Ipsum passage.</p> 
    <p><a href="#" id="link1.1">1<->2</a> <a href="#" id="link2.2">2<->3</a><a href="#" id="link3.3">3<->1</a> 
</body> 
</html> 

答えて

1

変更link1,2、そのような3つのonclickの機能:

 link1.onclick = function() { 
      swap(p1,p3); 
     } 
     link2.onclick = function() { 
      swap(p2,p3); 
     } 
     link3.onclick = function() { 
      swap(p1,p3); 
     } 
+0

これは私の問題を解決しました。それはJavascriptで関数を呼び出す通常の方法ですか? – Cham

+0

ボタンをクリックしたときの機能を設定します。 あなたの例では、関数を呼び出して結果をonclickに保存しますが、スワップ関数は何も返さないので未定義です – user2693928

+0

ありがとうございました! – Cham

1

あなたが関数を呼び出すと、それがonclickのに戻って何を設定しています。メソッドが何も返さないので、あなたがやっていることは基本的にlink1.onclick = undefined;です。

link1.onclick = function() { swap(p1,p3); } 
+0

それはそれがうまく機能しない理由です、その情報をありがとう! – Cham