0

だから私は jquery とjquery.transitを使って単純なボックスを回転させています。

.click別の名前付き関数を呼び出す基本的な関数を使用しています。ただし、ボタンをクリックする前に (ページが読み込まれるとすぐに) 名前付き関数が実行されます。

ここに jsfiddle があります: http://jsfiddle.net/kdLSS/1/

私のコード:

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      background-color:yellow;
      width:100px;
      border:1px solid blue;
      position:absolute;
      left:50px;
    }
  </style>
  <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js'></script>
  <script src='jquerytransit.js'></script> 
  <title>test</title>
</head>
<body>
  <script>
    $(function() {
      function hello() {
        $("#block").transition({
          perspective: '0px',
          rotateY: '180deg'
        }, 100 );
      }

      $("#go").click(hello())
    });
  </script>
  <button id="go"> Run</button>
  <div id="block">Hello!</div>
</body>
</html>

州の人々に感謝します。

4

3 に答える 3

5

イベントハンドラの割り当てを修正します。そのはず:

$("#go").click(hello);

// not $("#go").click(hello());

関数への参照を渡したいとしhelloます。関数の結果を渡したくありませんhello

于 2012-11-23T04:18:11.190 に答える
1

javascriptでは、関数名の後ろに()を追加すると、その関数がすぐに実行されます。クリックイベントに関数を割り当てたい場合は、()を省略します

すなわち

 $("#go").click(hello);

次に、#goをクリックするとその関数が実行されます

于 2012-11-23T04:18:37.667 に答える
0

@ルマルシン

あなたが行ったいくつかの基本的な間違いがあります.あなたが返品function helloしたようにdocument.ready、ブラケットを正しく閉じていません. そのため、準備ができたら実行するように処理されていますDom

修正されたスクリプト。

$(function() {
    $("#go").click(function() {
        hello();
        alert("Hi")
     });
 });

function hello()
{
    $("#block").transition({ perspective: '0px',
    rotateY: '180deg' }, 5000 );
}​
于 2012-11-23T04:31:02.553 に答える