0

この場合、HTMLからstart()javascript関数を呼び出す方法

    (function() {
      var never, start;

      never = function() {
       return alert("try");
     }; 

      start = function() {
       return alert("try harder");
     };


    }).call(this);

私のHTML

    <input type="button" value="press" onclick="never()" ></input>
4

3 に答える 3

4

イベントハンドラコードを属性に割り当てる場合、使用される関数はすべてグローバル変数スコープで使用可能である必要があります。

これを実現するために、それらをのプロパティにすることができますwindow。現在、あなたの関数neverstart関数はIIFE関数スコープに対してローカルです。

   // IIFE function
(function() {

  //  var never, start;  // local variables

     // Make the functions globally scoped
   window.never = function() {
      return alert("try");
   }; 

   window.start = function() {
      return alert("try harder");
   };
}).call(this);

必要に応じて、単一の名前空間を公開できます

   // IIFE function
(function() {

   var ns = window.ns = {};

     // Make the functions globally scoped
   ns.never = function() {
      return alert("try");
   }; 

   ns.start = function() {
      return alert("try harder");
   };
}).call(this);

次に、インラインハンドラーを使用するように変更しns.never();ますns.start();

于 2012-12-04T14:45:43.133 に答える
2

まず、入力タグにIDを付けます。

<input id="someInputField" type="button" ... />

次に、ドキュメントの準備ができたらコードを実行して、コールバックを登録します。

$(document).ready( function() {
    // define a function called never
    function never() {
        alert( 'Never say never');
    }

    // register a function on the click event handler of that input tag:
    $('#someInputField').click( never );
});
于 2012-12-04T14:48:41.897 に答える
2

jQueryのようなjavascriptライブラリを使用する方が簡単な場合があります。そのライブラリを使用して、これを行うことができます。

<script type="text/javascript">
    $(document).ready(function() {
        var count = 0
        $("#tryme").click(function () {
            if (count == 0) {
                alert('try');
                count++
            }
            else if (count == 1) {
                alert('try harder');
            }
        });
    });
</script>

<input type="button" value="press" id="tryme" ></input>
于 2012-12-04T14:53:37.533 に答える