如何从html调用javascript函数

时间:2012-12-04 14:44:28

标签: javascript jquery html javascript-events

我们如何从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>

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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 );
});

答案 2 :(得分: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>